<!DOCTYPE html>
<html>

<head>
    <title>JSON API 规范</title>
    <meta charset='utf-8'>
    <style>.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.45;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:none}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:rgba(232,76,61,0.1)}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:rgba(229,55,38,0.1)}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:rgba(255,209,0,0.12)}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:rgba(230,188,0,0.12)}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle}.form-control{display:block;width:100%;height:42px;padding:6px 12px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control:focus{border-color:#dee6ed;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6)}.form-control:focus{border-color:rgba(25,128,230,0.5);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6}.form-control:-moz-placeholder{color:#d5dfe9}.form-control::-moz-placeholder{color:#d5dfe9;opacity:1}.form-control:-ms-input-placeholder{color:#d5dfe9}.form-control::-webkit-input-placeholder{color:#d5dfe9}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:none}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:21px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:31px;line-height:31px}textarea.input-sm{height:auto}.input-lg{height:48px;padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}select.input-lg{height:48px;line-height:48px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#b89600}.has-warning .form-control{border-color:#b89600;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#856d00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffd61f;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffd61f}.has-warning .input-group-addon{color:#b89600;border-color:#b89600;background-color:rgba(255,209,0,0.12)}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#d82a1a}.has-error .form-control{border-color:#d82a1a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#ab2114;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ed766b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ed766b}.has-error .input-group-addon{color:#d82a1a;border-color:#d82a1a;background-color:rgba(232,76,61,0.1)}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#587ea4}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:28px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:15px;line-height:1.45;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#425e7b;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-default .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-primary{color:#425e7b;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#425e7b;background-color:#cad6e2;border-color:rgba(0,97,194,0.05)}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.btn-primary .badge{color:#e4ebf1;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#364d63;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#364d63;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-success .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-info{color:rgba(102,128,153,0.35);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:rgba(102,128,153,0.35);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-info .badge{color:rgba(0,0,0,0);background-color:#fff}.btn-link{color:#1980e6;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0f4d8a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;background-color:#fff;border:1px solid #ccc;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#dee6ed}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.45;color:#2c3f51;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#2d4053;background-color:rgba(102,128,153,0.04)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#d5dfe9}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.45;color:rgba(129,158,187,0.6)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:48px;padding:10px 16px;font-size:19px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:48px;line-height:48px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:15px;font-weight:normal;line-height:1;color:#2c3f51;text-align:center;background-color:none;border:1px solid #dee6ed;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:19px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:rgba(102,128,153,0.04)}.nav>li.disabled>a{color:#d5dfe9}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#d5dfe9;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:rgba(102,128,153,0.04);border-color:#1980e6}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid rgba(0,0,0,0)}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.45;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:none;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:none}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:none}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14.5px 15px;font-size:19px;line-height:21px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:4px;margin-bottom:4px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media (min-width:768px){.navbar-form .col-sm-1{width:8.33333333% !important}.navbar-form .col-sm-2{width:16.66666667% !important}.navbar-form .col-sm-3{width:25% !important}.navbar-form .col-sm-4{width:33.33333333% !important}.navbar-form .col-sm-5{width:41.66666667% !important}.navbar-form .col-sm-6{width:50% !important}.navbar-form .col-sm-7{width:58.33333333% !important}.navbar-form .col-sm-8{width:66.66666667% !important}.navbar-form .col-sm-9{width:75% !important}.navbar-form .col-sm-10{width:83.33333333% !important}.navbar-form .col-sm-11{width:91.66666667% !important}.navbar-form .col-sm-12{width:100% !important}}.navbar-form *{float:none}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-btn.btn-sm{margin-top:9.5px;margin-bottom:9.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#e4ebf1;border-color:#cfdae5}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#cfdae5}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#cfdae5}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#cfdae5;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#cfdae5}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.45;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:none}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:19px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:none}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#ebc000}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b89600}.label-danger{background-color:#e63b2b}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c62717}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#1980e6;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:23px;font-weight:200;line-height:2.175;color:inherit;background-color:none}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:67.5px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.45;background-color:none;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#1980e6}.thumbnail .caption{padding:9px;color:#2c3f51}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:rgba(255,209,0,0.12);border-color:rgba(255,209,0,0.24);color:#b89600}.alert-warning hr{border-top-color:rgba(230,188,0,0.24)}.alert-warning .alert-link{color:#856d00}.alert-danger{background-color:rgba(232,76,61,0.1);border-color:rgba(232,76,61,0.15);color:#d82a1a}.alert-danger hr{border-top-color:rgba(229,55,38,0.15)}.alert-danger .alert-link{color:#ab2114}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:13px;line-height:21px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#f6f7f9;border:1px solid rgba(0,0,0,0)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#eee}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#4b5666}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#2d4053;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#fff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:rgba(255,209,0,0.24)}.panel-warning>.panel-heading{color:#b89600;background-color:rgba(255,209,0,0.12);border-color:rgba(255,209,0,0.24)}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:rgba(255,209,0,0.24)}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:rgba(255,209,0,0.24)}.panel-danger{border-color:rgba(232,76,61,0.15)}.panel-danger>.panel-heading{color:#d82a1a;background-color:rgba(232,76,61,0.1);border-color:rgba(232,76,61,0.15)}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:rgba(232,76,61,0.15)}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:rgba(232,76,61,0.15)}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#2c3f51;text-shadow:0 1px 0 #fff;opacity:.2;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=20);filter:alpha(opacity=20)}.close:hover,.close:focus{color:#2c3f51;text-decoration:none;cursor:pointer;opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{position:relative;width:auto;margin:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid #dee6ed;border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#73808c}.modal-backdrop.fade{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #ebf0f4;min-height:16.45px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.45}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #ebf0f4}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:13px;line-height:1.4;opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.tooltip.in{opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=90);filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:250px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#475160;background-clip:padding-box;border:1px solid #ccc;border:1px solid #dee6ed;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;font-weight:normal;line-height:18px;background-color:rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0);border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:#dee6ed;bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#475160}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:#dee6ed}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#475160}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:#dee6ed;top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#475160}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:#dee6ed}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#475160;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@font-face{font-family:'fontello';src:url('../font/fontello.eot?28674469');src:url('../font/fontello.eot?28674469#iefix') format('embedded-opentype'),url('../font/fontello.woff?28674469') format('woff'),url('../font/fontello.ttf?28674469') format('truetype'),url('../font/fontello.svg?28674469#fontello') format('svg');font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-glass:before{content:'\e800'}.icon-resize-full-1:before{content:'\e947'}.icon-search:before{content:'\e802'}.icon-mail:before{content:'\e803'}.icon-mail-alt:before{content:'\e804'}.icon-heart:before{content:'\e805'}.icon-heart-empty:before{content:'\e806'}.icon-star:before{content:'\e807'}.icon-star-empty:before{content:'\e808'}.icon-star-half:before{content:'\e809'}.icon-star-half-alt:before{content:'\e80a'}.icon-user:before{content:'\e80b'}.icon-users:before{content:'\e80c'}.icon-male:before{content:'\e80d'}.icon-female:before{content:'\e80e'}.icon-video:before{content:'\e80f'}.icon-videocam:before{content:'\e810'}.icon-picture:before{content:'\e811'}.icon-camera:before{content:'\e812'}.icon-camera-alt:before{content:'\e813'}.icon-th-large:before{content:'\e814'}.icon-th:before{content:'\e815'}.icon-th-list:before{content:'\e816'}.icon-ok:before{content:'\e817'}.icon-ok-circled:before{content:'\e818'}.icon-ok-circled2:before{content:'\e819'}.icon-ok-squared:before{content:'\e81a'}.icon-cancel:before{content:'\e81b'}.icon-cancel-circled:before{content:'\e81c'}.icon-cancel-circled2:before{content:'\e81d'}.icon-plus:before{content:'\e81e'}.icon-plus-circled:before{content:'\e81f'}.icon-plus-squared:before{content:'\e820'}.icon-plus-squared-small:before{content:'\e821'}.icon-minus:before{content:'\e822'}.icon-minus-circled:before{content:'\e823'}.icon-minus-squared:before{content:'\e824'}.icon-minus-squared-alt:before{content:'\e825'}.icon-minus-squared-small:before{content:'\e826'}.icon-help:before{content:'\e827'}.icon-help-circled:before{content:'\e828'}.icon-info-circled:before{content:'\e829'}.icon-info:before{content:'\e82a'}.icon-home:before{content:'\e82b'}.icon-link:before{content:'\e82c'}.icon-unlink:before{content:'\e82d'}.icon-link-ext:before{content:'\e82e'}.icon-link-ext-alt:before{content:'\e82f'}.icon-attach:before{content:'\e830'}.icon-lock:before{content:'\e831'}.icon-lock-open:before{content:'\e832'}.icon-lock-open-alt:before{content:'\e833'}.icon-pin:before{content:'\e834'}.icon-eye:before{content:'\e835'}.icon-eye-off:before{content:'\e836'}.icon-tag:before{content:'\e837'}.icon-tags:before{content:'\e838'}.icon-bookmark:before{content:'\e839'}.icon-bookmark-empty:before{content:'\e83a'}.icon-flag:before{content:'\e83b'}.icon-flag-empty:before{content:'\e83c'}.icon-flag-checkered:before{content:'\e83d'}.icon-thumbs-up:before{content:'\e83e'}.icon-thumbs-down:before{content:'\e83f'}.icon-thumbs-up-alt:before{content:'\e840'}.icon-thumbs-down-alt:before{content:'\e841'}.icon-download:before{content:'\e842'}.icon-upload:before{content:'\e843'}.icon-download-cloud:before{content:'\e844'}.icon-upload-cloud:before{content:'\e845'}.icon-reply:before{content:'\e846'}.icon-reply-all:before{content:'\e847'}.icon-forward:before{content:'\e848'}.icon-quote-left:before{content:'\e849'}.icon-quote-right:before{content:'\e84a'}.icon-export-alt:before{content:'\e84b'}.icon-pencil:before{content:'\e84c'}.icon-pencil-squared:before{content:'\e84d'}.icon-edit:before{content:'\e84e'}.icon-print:before{content:'\e84f'}.icon-retweet:before{content:'\e850'}.icon-keyboard:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-comment:before{content:'\e853'}.icon-chat:before{content:'\e854'}.icon-comment-empty:before{content:'\e855'}.icon-chat-empty:before{content:'\e856'}.icon-bell:before{content:'\e857'}.icon-bell-alt:before{content:'\e858'}.icon-attention-alt:before{content:'\e859'}.icon-attention:before{content:'\e85a'}.icon-attention-circled:before{content:'\e85b'}.icon-location:before{content:'\e85c'}.icon-direction:before{content:'\e85d'}.icon-compass:before{content:'\e85e'}.icon-doc:before{content:'\e85f'}.icon-docs:before{content:'\e860'}.icon-doc-text:before{content:'\e861'}.icon-file:before{content:'\e862'}.icon-doc-text-inv:before{content:'\e863'}.icon-folder-empty:before{content:'\e864'}.icon-folder-open-empty:before{content:'\e865'}.icon-box:before{content:'\e866'}.icon-rss:before{content:'\e867'}.icon-rss-squared:before{content:'\e868'}.icon-phone:before{content:'\e869'}.icon-phone-squared:before{content:'\e86a'}.icon-menu:before{content:'\e86b'}.icon-cog:before{content:'\e86c'}.icon-cog-alt:before{content:'\e86d'}.icon-wrench:before{content:'\e86e'}.icon-basket:before{content:'\e86f'}.icon-calendar:before{content:'\e870'}.icon-calendar-empty:before{content:'\e871'}.icon-login:before{content:'\e872'}.icon-logout:before{content:'\e873'}.icon-mic:before{content:'\e874'}.icon-mute:before{content:'\e875'}.icon-volume-off:before{content:'\e876'}.icon-volume-down:before{content:'\e877'}.icon-volume-up:before{content:'\e878'}.icon-headphones:before{content:'\e879'}.icon-clock:before{content:'\e87a'}.icon-lightbulb:before{content:'\e87b'}.icon-block:before{content:'\e87c'}.icon-resize-full-alt:before{content:'\e87d'}.icon-resize-small:before{content:'\e87e'}.icon-resize-vertical:before{content:'\e87f'}.icon-resize-horizontal:before{content:'\e880'}.icon-move:before{content:'\e881'}.icon-zoom-in:before{content:'\e882'}.icon-zoom-out:before{content:'\e883'}.icon-down-circled2:before{content:'\e884'}.icon-up-circled2:before{content:'\e885'}.icon-down-dir:before{content:'\e886'}.icon-up-dir:before{content:'\e887'}.icon-left-dir:before{content:'\e888'}.icon-right-dir:before{content:'\e889'}.icon-down-open:before{content:'\e88a'}.icon-left-open:before{content:'\e88b'}.icon-right-open:before{content:'\e88c'}.icon-up-open:before{content:'\e88d'}.icon-angle-left:before{content:'\e88e'}.icon-angle-right:before{content:'\e88f'}.icon-angle-up:before{content:'\e890'}.icon-angle-down:before{content:'\e891'}.icon-angle-circled-left:before{content:'\e892'}.icon-angle-circled-right:before{content:'\e893'}.icon-angle-circled-up:before{content:'\e894'}.icon-angle-circled-down:before{content:'\e895'}.icon-angle-double-left:before{content:'\e896'}.icon-angle-double-right:before{content:'\e897'}.icon-angle-double-up:before{content:'\e898'}.icon-angle-double-down:before{content:'\e899'}.icon-down:before{content:'\e89a'}.icon-left:before{content:'\e89b'}.icon-right:before{content:'\e89c'}.icon-up:before{content:'\e89d'}.icon-down-big:before{content:'\e89e'}.icon-music:before{content:'\e89f'}.icon-archive:before{content:'\e8a0'}.icon-up-big:before{content:'\e8a1'}.icon-right-hand:before{content:'\e8a2'}.icon-resize-small-1:before{content:'\e8a3'}.icon-cancel-squared:before{content:'\e801'}.icon-down-hand:before{content:'\e8a5'}.icon-left-circled:before{content:'\e8a6'}.icon-right-circled:before{content:'\e8a7'}.icon-up-circled:before{content:'\e8a8'}.icon-down-circled:before{content:'\e8a9'}.icon-cw:before{content:'\e8aa'}.icon-ccw:before{content:'\e8ab'}.icon-refresh:before{content:'\e8ac'}.icon-level-up:before{content:'\e8ad'}.icon-level-down:before{content:'\e8ae'}.icon-shuffle:before{content:'\e8af'}.icon-exchange:before{content:'\e8b0'}.icon-collapse:before{content:'\e8b1'}.icon-collapse-top:before{content:'\e8b2'}.icon-expand:before{content:'\e8b3'}.icon-play:before{content:'\e8b4'}.icon-play-circled:before{content:'\e8b5'}.icon-play-circled2:before{content:'\e8b6'}.icon-stop:before{content:'\e8b7'}.icon-pause:before{content:'\e8b8'}.icon-to-end:before{content:'\e8b9'}.icon-to-end-alt:before{content:'\e8ba'}.icon-to-start:before{content:'\e8bb'}.icon-to-start-alt:before{content:'\e8bc'}.icon-fast-fw:before{content:'\e8bd'}.icon-fast-bw:before{content:'\e8be'}.icon-eject:before{content:'\e8bf'}.icon-signal:before{content:'\e8c0'}.icon-award:before{content:'\e8c1'}.icon-desktop:before{content:'\e8c2'}.icon-laptop:before{content:'\e8c3'}.icon-tablet:before{content:'\e8c4'}.icon-mobile:before{content:'\e8c5'}.icon-inbox:before{content:'\e8c6'}.icon-globe:before{content:'\e8c7'}.icon-sun:before{content:'\e8c8'}.icon-cloud:before{content:'\e8c9'}.icon-flash:before{content:'\e8ca'}.icon-moon:before{content:'\e8cb'}.icon-umbrella:before{content:'\e8cc'}.icon-flight:before{content:'\e8cd'}.icon-fighter-jet:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-font:before{content:'\e8d0'}.icon-bold:before{content:'\e8d1'}.icon-italic:before{content:'\e8d2'}.icon-text-height:before{content:'\e8d3'}.icon-text-width:before{content:'\e8d4'}.icon-align-left:before{content:'\e8d5'}.icon-align-center:before{content:'\e8d6'}.icon-align-right:before{content:'\e8d7'}.icon-align-justify:before{content:'\e8d8'}.icon-list:before{content:'\e8d9'}.icon-indent-left:before{content:'\e8da'}.icon-indent-right:before{content:'\e8db'}.icon-list-bullet:before{content:'\e8dc'}.icon-list-numbered:before{content:'\e8dd'}.icon-strike:before{content:'\e8de'}.icon-underline:before{content:'\e8df'}.icon-superscript:before{content:'\e8e0'}.icon-subscript:before{content:'\e8e1'}.icon-table:before{content:'\e8e2'}.icon-columns:before{content:'\e8e3'}.icon-crop:before{content:'\e8e4'}.icon-scissors:before{content:'\e8e5'}.icon-paste:before{content:'\e8e6'}.icon-briefcase:before{content:'\e8e7'}.icon-suitcase:before{content:'\e8e8'}.icon-ellipsis:before{content:'\e8e9'}.icon-ellipsis-vert:before{content:'\e8ea'}.icon-off:before{content:'\e8eb'}.icon-road:before{content:'\e8ec'}.icon-list-alt:before{content:'\e8ed'}.icon-qrcode:before{content:'\e8ee'}.icon-barcode:before{content:'\e8ef'}.icon-book:before{content:'\e8f0'}.icon-ajust:before{content:'\e8f1'}.icon-tint:before{content:'\e8f2'}.icon-check:before{content:'\e8f3'}.icon-check-empty:before{content:'\e8f4'}.icon-circle:before{content:'\e8f5'}.icon-circle-empty:before{content:'\e8f6'}.icon-asterisk:before{content:'\e8f7'}.icon-gift:before{content:'\e8f8'}.icon-fire:before{content:'\e8f9'}.icon-magnet:before{content:'\e8fa'}.icon-ticket:before{content:'\e8fb'}.icon-credit-card:before{content:'\e8fc'}.icon-floppy:before{content:'\e8fd'}.icon-megaphone:before{content:'\e8fe'}.icon-key:before{content:'\e8ff'}.icon-fork:before{content:'\e900'}.icon-rocket:before{content:'\e901'}.icon-bug:before{content:'\e902'}.icon-certificate:before{content:'\e903'}.icon-tasks:before{content:'\e904'}.icon-filter:before{content:'\e905'}.icon-beaker:before{content:'\e906'}.icon-magic:before{content:'\e907'}.icon-truck:before{content:'\e908'}.icon-money:before{content:'\e909'}.icon-euro:before{content:'\e90a'}.icon-pound:before{content:'\e90b'}.icon-dollar:before{content:'\e90c'}.icon-rupee:before{content:'\e90d'}.icon-yen:before{content:'\e90e'}.icon-renminbi:before{content:'\e90f'}.icon-won:before{content:'\e910'}.icon-bitcoin:before{content:'\e911'}.icon-sort:before{content:'\e912'}.icon-sort-down:before{content:'\e913'}.icon-sort-up:before{content:'\e914'}.icon-sort-alt-up:before{content:'\e915'}.icon-sort-alt-down:before{content:'\e916'}.icon-sort-name-up:before{content:'\e917'}.icon-sort-name-down:before{content:'\e918'}.icon-sort-number-up:before{content:'\e919'}.icon-sort-number-down:before{content:'\e91a'}.icon-hammer:before{content:'\e91b'}.icon-gauge:before{content:'\e91c'}.icon-sitemap:before{content:'\e91d'}.icon-spinner:before{content:'\e91e'}.icon-coffee:before{content:'\e91f'}.icon-food:before{content:'\e920'}.icon-beer:before{content:'\e921'}.icon-user-md:before{content:'\e922'}.icon-stethoscope:before{content:'\e923'}.icon-ambulance:before{content:'\e924'}.icon-medkit:before{content:'\e925'}.icon-h-sigh:before{content:'\e926'}.icon-hospital:before{content:'\e927'}.icon-building:before{content:'\e928'}.icon-smile:before{content:'\e929'}.icon-frown:before{content:'\e92a'}.icon-meh:before{content:'\e92b'}.icon-anchor:before{content:'\e92c'}.icon-terminal:before{content:'\e92d'}.icon-eraser:before{content:'\e92e'}.icon-puzzle:before{content:'\e92f'}.icon-shield:before{content:'\e930'}.icon-extinguisher:before{content:'\e931'}.icon-bullseye:before{content:'\e932'}.icon-resize-full:before{content:'\e933'}.icon-target:before{content:'\e934'}.icon-layers:before{content:'\e935'}.icon-chart-bar:before{content:'\e936'}.icon-share:before{content:'\e937'}.icon-hdd:before{content:'\e938'}.icon-trash:before{content:'\e939'}.icon-folder:before{content:'\e93a'}.icon-code:before{content:'\e93b'}.icon-folder-open:before{content:'\e93c'}.icon-left-big:before{content:'\e93d'}.icon-evernote:before{content:'\e93e'}.icon-right-big:before{content:'\e93f'}.icon-spin3:before{content:'\e940'}.icon-spin4:before{content:'\e941'}.icon-spin6:before{content:'\e942'}.icon-arrows-cw:before{content:'\e943'}.icon-resize-normal:before{content:'\e944'}.icon-left-hand:before{content:'\e945'}.icon-evernote-1:before{content:'\e946'}.icon-up-hand:before{content:'\e8a4'}/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;font-size:15px;line-height:1.45;color:#2c3f51;background-color:none}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#1980e6;text-decoration:none}a:hover,a:focus{color:#0f4d8a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.45;background-color:none;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid rgba(102,128,153,0.1)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:21px;margin-bottom:10.5px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#b89600}.text-warning:hover{color:#856d00}.text-danger{color:#d82a1a}.text-danger:hover{color:#ab2114}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid none}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.45}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;border-left:5px solid rgba(102,128,153,0.075)}blockquote p{font-size:18.75px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.45;color:#999}blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid rgba(102,128,153,0.075);border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:21px;font-style:normal;line-height:1.45}code,kbd,pre,samp{font-family:"Source Code Pro",monospace}code{padding:2px 4px;font-size:90%;color:#2c3f51;background-color:rgba(102,128,153,0.075);white-space:nowrap;border-radius:4px}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.45;word-break:break-all;word-wrap:break-word;color:#333;background-color:rgba(102,128,153,0.05);border:1px solid rgba(102,128,153,0.075);border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.pln{color:#000}.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:#f00}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}@font-face{font-family:'fontello';src:url('../font/fontello.svg#fontello') format('svg'),url('../font/fontello.woff') format('woff');font-weight:normal;font-style:normal}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:300;src:local('Source Sans Pro Light'),local('SourceSansPro-Light'),url("../font/SourceSansPro-Light-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;src:local('Source Sans Pro'),local('SourceSansPro'),url("../font/SourceSansPro-Regular-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:700;src:local('Source Sans Pro Bold'),local('SourceSansPro-Bold'),url("../font/SourceSansPro-Bold-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:italic;font-weight:300;src:local('Source Sans Pro Light Italic'),local('SourceSansProLight-Italic'),url("../font/SourceSansPro-LightItalic-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:italic;font-weight:400;src:local('Source Sans Pro Italic'),local('SourceSansPro-Italic'),url("../font/SourceSansPro-Italic-webfont.woff") format('woff')}@font-face{font-family:'Source Sans Pro';font-style:italic;font-weight:700;src:local('Source Sans Pro Bold Italic'),local('SourceSansPro-BoldItalic'),url("../font/SourceSansPro-BoldItalic-webfont.woff") format('woff')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:local('Source Code Pro'),local('SourceCodePro-Regular'),url("../font/SourceCodePro-Regular-webfont.woff") format('woff')}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:700;src:local('Source Code Pro Bold'),local('SourceCodePro-Bold'),url("../font/SourceCodePro-Bold-webfont.woff") format('woff')}.container{margin-bottom:180px;text-align:justify}a code{color:inherit}h1{font-size:2.6em}h2{font-size:2.15em}h3{font-size:1.7em}h4{font-size:1.25em}h5{font-size:1em}h6{font-size:.85em}h1,h2,h3,h4,h5,h6{margin:1.8em 0;text-align:start}pre{word-break:break-word}p,pre,pre.prettyprint,blockquote{margin:0 0 1.1em}hr{margin:2em 0}img{max-width:100%}.sequence-diagram,.flow-chart{text-align:center;margin-bottom:1.1em}.sequence-diagram text,.flow-chart text{font-size:15px !important;font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif !important}.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"]{stroke:#2c3f51}.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"]{stroke:none}.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"]{fill:#2c3f51}code,pre{font-family:"Source Code Pro",monospace;font-size:.9em}code{white-space:normal}pre,pre.prettyprint{text-align:start;border:0;border-radius:5px}pre code,pre.prettyprint code{padding:18px 28px !important}dt,dd{margin-top:5px;margin-bottom:5px}dd{margin-left:40px}table{margin-bottom:20px}table th,table td{padding:8px;line-height:20px;vertical-align:top;border-top:1px solid #ddd}table th{font-weight:bold}table thead th{vertical-align:bottom}table caption+thead tr:first-child th,table caption+thead tr:first-child td,table colgroup+thead tr:first-child th,table colgroup+thead tr:first-child td,table thead:first-child tr:first-child th,table thead:first-child tr:first-child td{border-top:0}table tbody+tbody{border-top:2px solid #ddd}blockquote{border-left-width:10px;background-color:rgba(102,128,153,0.05);border-top-right-radius:5px;border-bottom-right-radius:5px;padding:15px 20px}blockquote p{margin-bottom:1.1em;font-size:1em;line-height:1.45}blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}ul,ol{margin-bottom:1.1em}ul ul,ol ul,ul ol,ol ol{margin-bottom:1.1em}kbd{padding:.1em .6em;border:1px solid rgba(44,63,81,0.25);-webkit-box-shadow:0 1px 0 rgba(44,63,81,0.25);box-shadow:0 1px 0 rgba(44,63,81,0.25);font-size:.7em;font-family:sans-serif;background-color:#fff;color:#333;border-radius:3px;display:inline-block;margin:0 .1em;white-space:nowrap}.toc ul{list-style-type:none;margin-bottom:15px}.footnote{vertical-align:top;position:relative;top:-0.5em;font-size:.8em}.checklist-item{list-style:none;margin-left:-1.2em}[class^="icon-"],[class*=" icon-"]{display:inline-block;line-height:1.35em;vertical-align:middle;background-repeat:no-repeat}.icon-code{font-size:83%;line-height:1.65em}.icon-code:before{margin-left:.1em;margin-right:.6em}.icon-trash{line-height:1.5em}.icon-folder-open{font-size:80%}.icon-folder-open:before{margin-right:.6em}.icon-chart-bar{font-size:95%}.icon-chart-bar:before{margin-left:.3em;margin-right:.3em}.icon-comment-alt,.icon-chat{font-size:92%}.icon-comment-alt:before,.icon-chat:before{margin-left:.1em;margin-right:.4em}.icon-file{font-size:104%;margin-left:0;margin-right:0}.icon-link{font-size:104%}[class^="icon-provider-"],[class*=" icon-provider-"]{background-image:url("../img/icons.png");width:18px;height:16px;margin-top:-2px;margin-left:2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){[class^="icon-provider-"],[class*=" icon-provider-"]{background-image:url("../img/icons2x.png");background-size:256px 16px}}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){[class^="icon-provider-"],[class*=" icon-provider-"]{background-image:url("../img/icons2x.png");background-size:256px 16px}}.icon-provider-stackedit{background-position:0 0}.icon-provider-gdrive,.icon-provider-gdrivesec,.icon-provider-gdriveter{background-position:-18px 0}.icon-provider-dropbox{background-position:-37px 0}.icon-provider-github,.icon-provider-gist{background-position:-54px 0}.icon-provider-blogger,.icon-provider-bloggerpage{background-position:-72px 0}.icon-provider-tumblr{background-position:-90px 0}.icon-provider-wordpress{background-position:-108px 0}.icon-provider-ssh{background-position:-126px 0}.icon-provider-gplus{background-position:-144px 0}.icon-provider-couchdb{background-position:-162px 0}body.rtl #wmd-input,body.rtl #preview-contents,body.rtl .input-file-title,body.rtl .search-bar input,body.rtl .modal-document-manager input,body.rtl .comments-popover,body.rtl .container{direction:rtl}.MathJax_SVG_Display{text-align:center;margin:1em 0;position:relative;display:block !important;text-indent:0;max-width:none;max-height:none;min-width:0;min-height:0;width:100%}.MathJax_SVG{display:inline;font-style:normal;font-weight:normal;line-height:normal;font-size:100%;font-size-adjust:none;text-indent:0;text-align:left;text-transform:none;letter-spacing:normal;word-spacing:normal;word-wrap:normal;white-space:nowrap;float:none;direction:ltr;max-width:none;max-height:none;min-width:0;min-height:0;border:0;padding:0;margin:0;vertical-align:middle}.hljs-light .hljs{display:block;padding:.5em;background-color:#f0f0f0}.hljs-light .hljs,.hljs-light .hljs-subst,.hljs-light .hljs-tag .hljs-title,.hljs-light .lisp .hljs-title,.hljs-light .clojure .hljs-built_in,.hljs-light .nginx .hljs-title{color:#000}.hljs-light .hljs-string,.hljs-light .hljs-title,.hljs-light .hljs-constant,.hljs-light .hljs-parent,.hljs-light .hljs-tag .hljs-value,.hljs-light .hljs-rules .hljs-value,.hljs-light .hljs-rules .hljs-value .hljs-number,.hljs-light .hljs-preprocessor,.hljs-light .hljs-pragma,.hljs-light .haml .hljs-symbol,.hljs-light .ruby .hljs-symbol,.hljs-light .ruby .hljs-symbol .hljs-string,.hljs-light .hljs-aggregate,.hljs-light .hljs-template_tag,.hljs-light .django .hljs-variable,.hljs-light .smalltalk .hljs-class,.hljs-light .hljs-addition,.hljs-light .hljs-flow,.hljs-light .hljs-stream,.hljs-light .bash .hljs-variable,.hljs-light .apache .hljs-tag,.hljs-light .apache .hljs-cbracket,.hljs-light .tex .hljs-command,.hljs-light .tex .hljs-special,.hljs-light .erlang_repl .hljs-function_or_atom,.hljs-light .asciidoc .hljs-header,.hljs-light .markdown .hljs-header,.hljs-light .coffeescript .hljs-attribute{color:#800}.hljs-light .smartquote,.hljs-light .hljs-comment,.hljs-light .hljs-annotation,.hljs-light .hljs-template_comment,.hljs-light .diff .hljs-header,.hljs-light .hljs-chunk,.hljs-light .asciidoc .hljs-blockquote,.hljs-light .markdown .hljs-blockquote{color:#888}.hljs-light .hljs-number,.hljs-light .hljs-date,.hljs-light .hljs-regexp,.hljs-light .hljs-literal,.hljs-light .hljs-hexcolor,.hljs-light .smalltalk .hljs-symbol,.hljs-light .smalltalk .hljs-char,.hljs-light .go .hljs-constant,.hljs-light .hljs-change,.hljs-light .lasso .hljs-variable,.hljs-light .makefile .hljs-variable,.hljs-light .asciidoc .hljs-bullet,.hljs-light .markdown .hljs-bullet,.hljs-light .asciidoc .hljs-link_url,.hljs-light .markdown .hljs-link_url{color:#080}.hljs-light .hljs-label,.hljs-light .hljs-javadoc,.hljs-light .ruby .hljs-string,.hljs-light .hljs-decorator,.hljs-light .hljs-filter .hljs-argument,.hljs-light .hljs-localvars,.hljs-light .hljs-array,.hljs-light .hljs-attr_selector,.hljs-light .hljs-important,.hljs-light .hljs-pseudo,.hljs-light .hljs-pi,.hljs-light .haml .hljs-bullet,.hljs-light .hljs-doctype,.hljs-light .hljs-deletion,.hljs-light .hljs-envvar,.hljs-light .hljs-shebang,.hljs-light .apache .hljs-sqbracket,.hljs-light .nginx .hljs-built_in,.hljs-light .tex .hljs-formula,.hljs-light .erlang_repl .hljs-reserved,.hljs-light .hljs-prompt,.hljs-light .asciidoc .hljs-link_label,.hljs-light .markdown .hljs-link_label,.hljs-light .vhdl .hljs-attribute,.hljs-light .clojure .hljs-attribute,.hljs-light .asciidoc .hljs-attribute,.hljs-light .lasso .hljs-attribute,.hljs-light .coffeescript .hljs-property,.hljs-light .hljs-phony{color:#88f}.hljs-light .hljs-keyword,.hljs-light .hljs-id,.hljs-light .hljs-title,.hljs-light .hljs-built_in,.hljs-light .hljs-aggregate,.hljs-light .css .hljs-tag,.hljs-light .hljs-javadoctag,.hljs-light .hljs-phpdoc,.hljs-light .hljs-yardoctag,.hljs-light .smalltalk .hljs-class,.hljs-light .hljs-winutils,.hljs-light .bash .hljs-variable,.hljs-light .apache .hljs-tag,.hljs-light .go .hljs-typename,.hljs-light .tex .hljs-command,.hljs-light .asciidoc .hljs-strong,.hljs-light .markdown .hljs-strong,.hljs-light .hljs-request,.hljs-light .hljs-status{font-weight:bold}.hljs-light .asciidoc .hljs-emphasis,.hljs-light .markdown .hljs-emphasis{font-style:italic}.hljs-light .nginx .hljs-built_in{font-weight:normal}.hljs-light .coffeescript .javascript,.hljs-light .javascript .xml,.hljs-light .lasso .markup,.hljs-light .tex .hljs-formula,.hljs-light .xml .javascript,.hljs-light .xml .vbscript,.hljs-light .xml .css,.hljs-light .xml .hljs-cdata{opacity:.5}.hljs-dark{background:#f6f6f6}.hljs-dark .hljs{display:block;padding:.5em;background:#23241f}.hljs-dark .hljs,.hljs-dark .hljs-tag,.hljs-dark .css .hljs-rules,.hljs-dark .css .hljs-value,.hljs-dark .css .hljs-function .hljs-preprocessor,.hljs-dark .hljs-pragma{color:#f8f8f2}.hljs-dark .hljs-strongemphasis,.hljs-dark .hljs-strong,.hljs-dark .hljs-emphasis{color:#a8a8a2}.hljs-dark .hljs-bullet,.hljs-dark .hljs-blockquote,.hljs-dark .hljs-horizontal_rule,.hljs-dark .hljs-number,.hljs-dark .hljs-regexp,.hljs-dark .alias .hljs-keyword,.hljs-dark .hljs-literal,.hljs-dark .hljs-hexcolor{color:#ae81ff}.hljs-dark .hljs-tag .hljs-value,.hljs-dark .hljs-code,.hljs-dark .hljs-title,.hljs-dark .css .hljs-class,.hljs-dark .hljs-class .hljs-title:last-child{color:#a6e22e}.hljs-dark .hljs-link_url{font-size:80%}.hljs-dark .hljs-strong,.hljs-dark .hljs-strongemphasis{font-weight:bold}.hljs-dark .hljs-emphasis,.hljs-dark .hljs-strongemphasis,.hljs-dark .hljs-class .hljs-title:last-child{font-style:italic}.hljs-dark .hljs-keyword,.hljs-dark .hljs-function,.hljs-dark .hljs-change,.hljs-dark .hljs-winutils,.hljs-dark .hljs-flow,.hljs-dark .lisp .hljs-title,.hljs-dark .clojure .hljs-built_in,.hljs-dark .nginx .hljs-title,.hljs-dark .tex .hljs-special,.hljs-dark .hljs-header,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-symbol .hljs-string,.hljs-dark .hljs-tag .hljs-title,.hljs-dark .hljs-value,.hljs-dark .alias .hljs-keyword:first-child,.hljs-dark .css .hljs-tag,.hljs-dark .css .unit,.hljs-dark .css .hljs-important{color:#f92672}.hljs-dark .hljs-function .hljs-keyword,.hljs-dark .hljs-class .hljs-keyword:first-child,.hljs-dark .hljs-constant,.hljs-dark .css .hljs-attribute{color:#66d9ef}.hljs-dark .hljs-variable,.hljs-dark .hljs-params,.hljs-dark .hljs-class .hljs-title{color:#f8f8f2}.hljs-dark .hljs-string,.hljs-dark .css .hljs-id,.hljs-dark .hljs-subst,.hljs-dark .haskell .hljs-type,.hljs-dark .ruby .hljs-class .hljs-parent,.hljs-dark .hljs-built_in,.hljs-dark .sql .hljs-aggregate,.hljs-dark .django .hljs-template_tag,.hljs-dark .django .hljs-variable,.hljs-dark .smalltalk .hljs-class,.hljs-dark .django .hljs-filter .hljs-argument,.hljs-dark .smalltalk .hljs-localvars,.hljs-dark .smalltalk .hljs-array,.hljs-dark .hljs-attr_selector,.hljs-dark .hljs-pseudo,.hljs-dark .hljs-addition,.hljs-dark .hljs-stream,.hljs-dark .hljs-envvar,.hljs-dark .apache .hljs-tag,.hljs-dark .apache .hljs-cbracket,.hljs-dark .tex .hljs-command,.hljs-dark .hljs-prompt,.hljs-dark .hljs-link_label,.hljs-dark .hljs-link_url{color:#e6db74}.hljs-dark .hljs-comment,.hljs-dark .hljs-javadoc,.hljs-dark .java .hljs-annotation,.hljs-dark .python .hljs-decorator,.hljs-dark .hljs-template_comment,.hljs-dark .hljs-pi,.hljs-dark .hljs-doctype,.hljs-dark .hljs-deletion,.hljs-dark .hljs-shebang,.hljs-dark .apache .hljs-sqbracket,.hljs-dark .tex .hljs-formula{color:#75715e}.hljs-dark .coffeescript .javascript,.hljs-dark .javascript .xml,.hljs-dark .tex .hljs-formula,.hljs-dark .xml .javascript,.hljs-dark .xml .vbscript,.hljs-dark .xml .css,.hljs-dark .xml .hljs-cdata,.hljs-dark .xml .php,.hljs-dark .php .xml{opacity:.5}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}h1,h2,h3,h4,h5,h6{font-weight:bold;margin:1.2em 0}.note-tags{color:rgba(44,63,81,0.3)}.note-tags code{color:rgba(44,63,81,0.5);background:rgba(102,128,153,0.075);border-radius:0;padding:2px 5px}.note-tags code:empty{display:none}.note-tags .notebook{background:rgba(44,63,81,0.3);color:#fff;margin-right:6px}table th,table td,table thead:first-child tr:first-child th{padding:.5em;border:1px solid #ddd;line-height:1.5}.note-content{line-height:1.5;color:#2c3f51}.image-broken-replacement{text-align:center;font-style:italic;padding:8px;border-radius:5px;color:rgba(102,128,153,0.6);background-color:rgba(102,128,153,0.075)}.alertify,.alertify-show,.alertify-log{-webkit-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-moz-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-ms-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);-o-transition:all 500ms cubic-bezier(.175, .885, .32, 1.275);transition:all 500ms cubic-bezier(.175, .885, .32, 1.275)}.alertify-hide{-webkit-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-moz-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-ms-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);-o-transition:all 250ms cubic-bezier(.6, -0.28, .735, .045);transition:all 250ms cubic-bezier(.6, -0.28, .735, .045)}.alertify-log-hide{-webkit-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-moz-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-ms-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);-o-transition:all 500ms cubic-bezier(.6, -0.28, .735, .045);transition:all 500ms cubic-bezier(.6, -0.28, .735, .045)}.alertify-cover{position:fixed;z-index:99999;top:0;right:0;bottom:0;left:0;background-color:#fff;filter:alpha(opacity=0);opacity:0}.alertify-cover-hidden{display:none}.alertify{position:fixed;z-index:99999;top:50px;left:50%;width:550px;margin-left:-275px;opacity:1}.alertify-hidden{opacity:0;display:none}:root *>.alertify-hidden{display:block;visibility:hidden}.alertify-logs{position:fixed;z-index:5000;bottom:10px;right:10px;width:300px}.alertify-logs-hidden{display:none}.alertify-log{display:block;margin-top:10px;position:relative;right:-300px;opacity:0}.alertify-log-show{right:0;opacity:1}.alertify-log-hide{-webkit-transform:translate(300px, 0);-moz-transform:translate(300px, 0);-ms-transform:translate(300px, 0);-o-transform:translate(300px, 0);transform:translate(300px, 0);opacity:0}.alertify-dialog{padding:25px}.alertify-resetFocus{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.alertify-inner{text-align:center}.alertify-text{margin-bottom:15px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:100%}.alertify-isHidden{display:none}@media only screen and (max-width:680px){.alertify,.alertify-logs{width:90%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.alertify{left:5%;margin:0}}.alertify,.alertify-log{font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif}.alertify{background:#fff;border:1px solid #dee6ed;border-radius:6px;width:398px;margin-left:-200px;-webkit-background-clip:padding;-moz-background-clip:padding;background-clip:padding-box}.alertify-dialog{padding:0}.alertify-inner{text-align:left}.alertify-message{padding:15px;margin:0}.alertify-text-wrapper{padding:0 15px}.alertify-text{display:block;width:100%;height:42px;padding:6px 12px;font-size:15px;line-height:1.45;color:#2c3f51;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #dee6ed;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.alertify-text:focus:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.alertify-text:focus:focus{border-color:#dee6ed;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px rgba(102, 128, 153, 0.6)}.alertify-text:focus:focus{border-color:rgba(25,128,230,0.5);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 12px -1px #1980e6}.alertify-buttons{padding:14px 15px 15px;background:#f6f7f9;border-top:1px solid #ebf0f4;text-align:right;border-radius:0 0 6px 6px}.alertify-button{margin-left:10px}.alertify-button-cancel,.alertify-button-ok{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:15px;line-height:1.45;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.alertify-button-cancel:focus,.alertify-button-ok:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.alertify-button-cancel:hover,.alertify-button-ok:hover,.alertify-button-cancel:focus,.alertify-button-ok:focus{color:#425e7b;text-decoration:none}.alertify-button-cancel:active,.alertify-button-ok:active,.alertify-button-cancel.active,.alertify-button-ok.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.alertify-button-cancel{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel:hover,.alertify-button-cancel:focus,.alertify-button-cancel:active,.alertify-button-cancel.active,.open .dropdown-toggle.alertify-button-cancel{color:#425e7b;background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel:active,.alertify-button-cancel.active,.open .dropdown-toggle.alertify-button-cancel{background-image:none}.alertify-button-cancel.disabled,.alertify-button-cancel[disabled],fieldset[disabled] .alertify-button-cancel,.alertify-button-cancel.disabled:hover,.alertify-button-cancel[disabled]:hover,fieldset[disabled] .alertify-button-cancel:hover,.alertify-button-cancel.disabled:focus,.alertify-button-cancel[disabled]:focus,fieldset[disabled] .alertify-button-cancel:focus,.alertify-button-cancel.disabled:active,.alertify-button-cancel[disabled]:active,fieldset[disabled] .alertify-button-cancel:active,.alertify-button-cancel.disabled.active,.alertify-button-cancel[disabled].active,fieldset[disabled] .alertify-button-cancel.active{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.alertify-button-cancel .badge{color:rgba(0,0,0,0);background-color:#fff}.alertify-button-ok{color:#425e7b;background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.alertify-button-ok:hover,.alertify-button-ok:focus,.alertify-button-ok:active,.alertify-button-ok.active,.open .dropdown-toggle.alertify-button-ok{color:#425e7b;background-color:#cad6e2;border-color:rgba(0,97,194,0.05)}.alertify-button-ok:active,.alertify-button-ok.active,.open .dropdown-toggle.alertify-button-ok{background-image:none}.alertify-button-ok.disabled,.alertify-button-ok[disabled],fieldset[disabled] .alertify-button-ok,.alertify-button-ok.disabled:hover,.alertify-button-ok[disabled]:hover,fieldset[disabled] .alertify-button-ok:hover,.alertify-button-ok.disabled:focus,.alertify-button-ok[disabled]:focus,fieldset[disabled] .alertify-button-ok:focus,.alertify-button-ok.disabled:active,.alertify-button-ok[disabled]:active,fieldset[disabled] .alertify-button-ok:active,.alertify-button-ok.disabled.active,.alertify-button-ok[disabled].active,fieldset[disabled] .alertify-button-ok.active{background-color:#e4ebf1;border-color:rgba(0,128,255,0.05)}.alertify-button-ok .badge{color:#e4ebf1;background-color:#fff}.alertify-log{background:#d9edf7;padding:8px 14px;border-radius:4px;color:#3a8abf;text-shadow:0 1px 0 rgba(255,255,255,0.5);border:1px solid #bce8f1}.alertify-log-error{color:#b94a48;background:#f2dede;border:1px solid #eed3d7}.alertify-log-success{color:#468847;background:#dff0d8;border:1px solid #d6e9c6}.tour-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000;opacity:.8}.tour-step-backdrop{position:relative;z-index:1031;background:inherit}.tour-step-background{position:absolute;z-index:1030;background:inherit;border-radius:6px}.popover[class*="tour-"]{z-index:1030}.popover[class*="tour-"] .popover-navigation{padding:9px 14px}.popover[class*="tour-"] .popover-navigation *[data-role=end]{float:right}.popover[class*="tour-"] .popover-navigation *[data-role=prev],.popover[class*="tour-"] .popover-navigation *[data-role=next],.popover[class*="tour-"] .popover-navigation *[data-role=end]{cursor:pointer}.popover[class*="tour-"] .popover-navigation *[data-role=prev].disabled,.popover[class*="tour-"] .popover-navigation *[data-role=next].disabled,.popover[class*="tour-"] .popover-navigation *[data-role=end].disabled{cursor:default}.popover[class*="tour-"].orphan{position:fixed;margin-top:0}.popover[class*="tour-"].orphan .arrow{display:none}div.jGrowl{z-index:9999;color:#fff;font-size:12px}div.jGrowl{position:absolute}body>div.jGrowl{position:fixed}div.jGrowl.top-left{left:0;top:0}div.jGrowl.top-right{right:0;top:0}div.jGrowl.bottom-left{left:0;bottom:0}div.jGrowl.bottom-right{right:0;bottom:0}div.jGrowl.center{top:0;width:50%;left:25%}div.center div.jGrowl-notification,div.center div.jGrowl-closer{margin-left:auto;margin-right:auto}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:#000;zoom:1;width:235px;padding:10px;margin-top:5px;margin-bottom:5px;font-family:Tahoma,Arial,Helvetica,sans-serif;font-size:1em;text-align:left;display:none;-moz-border-radius:5px;-webkit-border-radius:5px}div.jGrowl div.jGrowl-notification{min-height:40px}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{margin:10px}div.jGrowl div.jGrowl-notification div.jGrowl-header{font-weight:bold;font-size:.85em}div.jGrowl div.jGrowl-notification div.jGrowl-close{z-index:99;float:right;font-weight:bold;font-size:1em;cursor:pointer}div.jGrowl div.jGrowl-closer{padding-top:4px;padding-bottom:4px;cursor:pointer;font-size:.9em;font-weight:bold;text-align:center}@media print{div.jGrowl{display:none}}.animate-spin{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:30px;bottom:10px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{margin:0 0 6px;padding:8px;padding-left:50px;min-width:200px;box-shadow:none;border-radius:15px}.toast{background-image:none !important}.toast:before{position:fixed;font-family:fontello;font-size:24px;line-height:22px;float:left;padding-right:.5em;margin:auto .5em auto -1.5em}.toast-warning:before{content:"\e858"}.toast-error:before{content:"\e81a"}.toast-info:before{content:"\e828"}.toast-success:before{content:"\e816"}.toast-wait:before{content:"\e879"}.toast{border:2px solid #000;color:#030303;background-color:rgba(120,120,120,0.9)}.toast-success{border:2px solid #499249;color:#51a351;background-color:rgba(234,245,234,0.9)}.toast-error{border:2px solid #a9302a;color:#bd362f;background-color:rgba(247,225,223,0.9)}.toast-info{border:2px solid #2a85a0;color:#2f96b4;background-color:rgba(217,239,245,0.9)}.toast-warning{border:2px solid #b9751d;color:#cf8321;background-color:rgba(250,239,224,0.9)}.toast-wait{border:none;padding:3px 16px;color:#fff;font-size:12px;background:none;margin:0;width:auto;min-width:initial;min-width:auto;position:relative}.toast-wait .toast-message{position:relative}.toast-wait:before{content:'';background:#ed1d70;display:block;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;-webkit-animation:2s loadingBefore infinite ease-in-out;-ms-animation:2s loadingBefore infinite ease-in-out;-moz-animation:2s loadingBefore infinite ease-in-out}@-webkit-keyframes loadingBefore{0%{-webkit-transform:translateX(-14px)}50%{-webkit-transform:translateX(14px);opacity:.6}100%{-webkit-transform:translateX(-14px)}}@-moz-keyframes loadingBefore{0%{-moz-transform:translateX(-14px)}50%{-moz-transform:translateX(14px);opacity:.6}100%{-moz-transform:translateX(-14px)}}@-ms-keyframes loadingBefore{0%{-ms-transform:translateX(-14px)}50%{-ms-transform:translateX(14px);opacity:.6}100%{-ms-transform:translateX(-14px)}}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}body{tab-size:4;text-align:start}*{outline:none !important}.working{cursor:progress}.dragging{cursor:move !important}.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.dropdown-menu,.modal-content,.panel-content,.search-bar,.popover,.find-replace,.alertify{-webkit-box-shadow:0 4px 16px rgba(0,0,0,0.225);box-shadow:0 4px 16px rgba(0,0,0,0.225)}.dropdown-menu>li>a{padding:5px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{border-color:#475160}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{border-color:transparent}.collapsed>.icon-up-dir:before{content:'\e94d'}.modal.fade .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-content{background-color:#f6f7f9}.modal-body{background-color:#fff;padding-bottom:30px}.modal-footer{margin-top:0}.modal-iframe{display:block;margin:30px auto 0;z-index:1040;border-radius:0}a{-webkit-transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s;transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s}.nav-pills>li>a{border:1px solid rgba(0,0,0,0)}.nav-pills>li>a:hover,.nav-pills>li>a:focus{color:#036;border-color:#475160}.nav-pills>li.open>a .caret,.nav-pills>li>a:hover .caret,.nav-pills>li>a:focus .caret{border-top-color:#036;border-bottom-color:#036}.nav-pills>li.disabled>a:hover,.nav-pills>li.disabled>a:focus{border-color:rgba(0,0,0,0)}.nav-pills>li.open>a,.nav-pills>li.open>a:hover,.nav-pills>li.open>a:focus{color:#036;border-color:#475160}.list-group-item{padding:10px 15px;border-left-width:0;border-right-width:0;margin-bottom:0}.list-group .list-group-item{border-radius:0}a.list-group-item:hover,a.list-group-item:focus{color:#036;border-color:#475160}.list-group-item .checkbox{float:right;margin:0;padding:0;cursor:pointer}.list-group-item .checkbox input{cursor:pointer;margin:0 16px;height:38px}.form-group{margin-bottom:1px;padding:5px}.text-danger:hover{color:#d82a1a}.bring-to-front{z-index:1050 !important}.dialog-header-message{position:absolute;top:12px;right:55px;font-weight:bold}.btn{padding:8px 11px;-webkit-transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s;transition:background-color ease-in-out .15s, color ease-in-out .15s, border-color ease-in-out .15s}.btn-default:hover,.alertify-button-cancel:hover,.btn-default:focus,.alertify-button-cancel:focus,.btn-default:active,.alertify-button-cancel:active,.open .btn-default.dropdown-toggle,.open .alertify-button-cancel.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.1);background-color:rgba(102,128,153,0.04) !important}.btn-primary:hover,.alertify-button-ok:hover,.btn-primary:focus,.alertify-button-ok:focus,.btn-primary:active,.alertify-button-ok:active,.open .btn-primary.dropdown-toggle,.open .alertify-button-ok.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.1);background-color:#dae3eb !important}.btn-success:hover,.btn-success:focus,.btn-success:active,.open .btn-success.dropdown-toggle{color:#036 !important;border-color:rgba(0,128,255,0.1);background-color:rgba(89,128,166,0.05) !important}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.info-tooltip,.info-tooltip .btn-info,.open .btn-info.dropdown-toggle{color:#036;border-color:rgba(0,128,255,0.08);background-color:#f0f2f5 !important}.btn-link:hover{text-decoration:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0}.btn-group>.btn+.dropdown-toggle{padding-right:11px;padding-left:11px}.form-control{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025)}@media (min-width:768px){.form-inline .col-sm-1{width:8.33333333% !important}.form-inline .col-sm-2{width:16.66666667% !important}.form-inline .col-sm-3{width:25% !important}.form-inline .col-sm-4{width:33.33333333% !important}.form-inline .col-sm-5{width:41.66666667% !important}.form-inline .col-sm-6{width:50% !important}.form-inline .col-sm-7{width:58.33333333% !important}.form-inline .col-sm-8{width:66.66666667% !important}.form-inline .col-sm-9{width:75% !important}.form-inline .col-sm-10{width:83.33333333% !important}.form-inline .col-sm-11{width:91.66666667% !important}.form-inline .col-sm-12{width:100% !important}}.form-inline *{float:none}.form-control.error{border-color:#e84c3d;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 8px #e84c3d;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025), 0 0 8px #e84c3d}.help-block{font-size:12px}.input-group-addon{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.025)}a.input-group-addon{color:#1980e6}.input-group-btn .btn i{font-size:110%}.input-group-btn:first-child .btn{margin-right:6px}.input-group-btn:last-child .btn{margin-left:6px}.navbar{position:absolute;top:0;left:0;width:100%;padding:0;border:0;border-top:1px solid rgba(0,128,255,0.1);border-bottom:1px solid rgba(0,128,255,0.1);border-radius:0;z-index:20}.navbar .left-space,.navbar .right-space{width:25px;height:38px}.navbar .nav{float:left;margin:5px 9px;height:38px}.navbar .nav>li{display:inline-block}.navbar .nav.pull-right{float:right}.navbar .nav.pull-right>li>.dropdown-menu{right:0;left:auto}.navbar .nav.pull-right>li>.dropdown-menu .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}.navbar .btn{height:38px;padding:6px 8px}.navbar .btn-group>.btn.disabled *,.navbar .btn-group>.btn.blocked *,.navbar .btn-group>.btn[disabled] *{color:rgba(54,77,99,0.3)}.navbar .button-open-discussion.some{color:#e0b800 !important}.navbar .button-open-discussion.replied{color:#e74434 !important}.navbar .file-title-navbar{display:inline-block;vertical-align:middle;padding:1px 15px;font-size:1.5em;line-height:1.45em;font-weight:200;overflow:hidden;white-space:nowrap}.navbar .file-title-navbar a i{-webkit-transition:all ease-in-out .15s;transition:all ease-in-out .15s}.navbar .file-title-navbar a .icon-link-ext-alt{color:transparent;position:relative;font-size:12px;top:-12px;right:6px;width:0}.navbar .file-title-navbar a:hover [class^="icon-provider-"],.navbar .file-title-navbar a:hover [class*=" icon-provider-"]{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.navbar .file-title-navbar a:hover .icon-link-ext-alt{color:#036}.navbar .input-file-title-container{display:inline-block;vertical-align:middle}.navbar .input-file-title-container .input-file-title{width:400px;font-size:16px;height:38px}.navbar .working-indicator{display:inline-block;vertical-align:middle;overflow:hidden;height:38px;width:60px;padding-top:8px}.navbar .working-indicator .bar{display:inline-block;width:14px;height:6px;border-radius:1px;margin:0 2px;opacity:.25;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=25);filter:alpha(opacity=25);background-color:rgba(54,77,99,0.75)}.navbar .offline-status>div{display:inline-block;vertical-align:middle;height:38px;padding:9px 10px}.navbar .buttons-dropdown>.nav{margin-left:0;margin-right:0}.navbar div.dropdown-menu{top:initial;padding:5px;margin:10px}.menu-panel,.document-panel{height:100%;z-index:30;overflow:initial}.menu-panel .toggle-button,.document-panel .toggle-button{background-color:#fff;height:38px;border-radius:8px;position:absolute;margin-top:6px;-webkit-transition:border-width ease-in-out .15s, left ease-in-out 0.15s, right ease-in-out 0.15s, background-color ease-in-out 0.15s;transition:border-width ease-in-out .15s, left ease-in-out 0.15s, right ease-in-out 0.15s, background-color ease-in-out 0.15s;-webkit-box-shadow:0 0 1px rgba(0,0,0,.5);box-shadow:0 0 1px rgba(0,0,0,.5)}.menu-panel .toggle-button:active,.document-panel .toggle-button:active{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 1px rgba(0,0,0,.5);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125), 0 0 1px rgba(0,0,0,.5)}.menu-panel .toggle-button i,.document-panel .toggle-button i{color:#737373;font-size:14px}.menu-panel .toggle-button:hover,.document-panel .toggle-button:hover,.menu-panel.panel-open>.toggle-button,.document-panel.panel-open>.toggle-button{border-width:1px}.menu-panel .panel-content,.document-panel .panel-content{overflow:auto;padding-bottom:30px;height:100%}.menu-panel .panel-content a>i,.document-panel .panel-content a>i{color:inherit}.menu-panel{position:absolute;top:0;right:0;width:320px}.menu-panel i{margin-right:8px}.menu-panel small{color:rgba(129,158,187,0.6);padding-left:30px}.menu-panel .nav{margin:10px 0 20px}.menu-panel .nav>li>a:hover,.menu-panel .nav>li>a:focus{background-color:rgba(0,0,0,0)}.menu-panel .alert{padding:10px;margin-left:-10px;margin-right:-10px}.menu-panel .toggle-button{border-top:4px solid rgba(255,230,0,0.9);border-right:5px solid rgba(117,183,253,0.9);border-bottom:4px solid rgba(255,138,0,0.9);right:-37px;z-index:-1;padding:0 10px 0 50px}.menu-panel .toggle-button:hover,.menu-panel.panel-open>.toggle-button{right:-45px}.menu-panel .panel-content{background-color:#f6f7f9;padding-top:6px;border-right:1px solid #ebf0f4}.document-panel{position:absolute;top:0;left:0;width:380px}.document-panel .toggle-button{border-top:4px solid rgba(255,230,0,0.9);border-left:5px solid rgba(187,213,0,0.9);border-bottom:4px solid rgba(255,138,0,0.9);left:-37px;padding:0 50px 0 3px;z-index:-1}.document-panel .toggle-button i.icon-folder-open{font-size:19px;padding-bottom:1px}.document-panel .toggle-button:hover,.document-panel.panel-open>.toggle-button{left:-45px}.document-panel .panel-content{background-color:#f6f7f9;padding-top:210px;border-left:1px solid #ebf0f4}.viewer .document-panel .panel-content{padding-top:75px}.document-panel .panel-content .icon-layers{font-size:135%}.document-panel .search-bar{position:absolute;background-color:#475160;margin:-10px 25px 0;padding:15px 20px;z-index:3;border:1px solid #dee6ed;border-radius:6px}.document-panel .search-bar .nav{margin-bottom:10px}.document-panel .search-bar .nav>li>a{padding:8px 15px}.document-panel .search-bar .nav>li>a:hover,.document-panel .search-bar .nav>li>a:focus{background-color:rgba(0,0,0,0)}.document-panel .list-group-item{margin:0}.document-panel .folder{font-weight:bold;color:#425e7b;border-top-color:#f2f5f8}.document-panel .list-group{margin:0}.document-panel .list-group .nav{border:0;margin:0}.document-panel .list-group .nav .file{padding-left:30px;padding-right:30px}.dropdown-file-selector{top:6px;right:45px;left:auto;margin:0;min-width:280px;max-width:400px;overflow-x:hidden;max-height:400px;overflow-y:auto}.modal-document-manager{margin-bottom:0}.modal-document-manager .nav-pills{margin-bottom:15px}.modal-document-manager .list-group .nav{margin-bottom:30px;border:0;margin:0}.modal-document-manager .list-group .nav .file{padding-left:20px}.modal-document-manager .file-list .list-group-item{background-color:rgba(0,0,0,0);padding:0 3px}.modal-document-manager .input-rename{width:220px;height:38px}.modal .list-group .list-group-item{border-radius:4px}.modal .list-group-item{padding:3px;margin:0;border-left-width:1px;border-right-width:1px}.modal .list-group-item i{margin-right:3px}.modal .list-group-item .btn{float:right;margin-right:3px}.modal .list-group-item .btn i{margin:0;font-size:105%}.modal .list-group-item .btn i.icon-pencil{font-size:115%}.modal .folder,.modal .document{font-weight:bold;color:#425e7b;font-size:15px;background-color:rgba(0,0,0,0)}.modal .name,.modal .date,.modal .file-count{padding:9px 20px 9px 15px}.modal .name i.icon-file,.modal .name i.icon-folder{margin-right:8px;font-size:20px;line-height:15px;margin-top:-2px}.modal .date{font-weight:normal}.extension-buttons>.btn-group>.btn,.extension-preview-buttons>.btn-group>.btn,.extension-buttons>.btn-group>.btn,.extension-preview-buttons>.btn-group>.btn{border-radius:0}.extension-buttons>.btn-group:first-child>.btn,.extension-preview-buttons>.btn-group:first-child>.btn,.extension-buttons>.btn-group:first-child>.btn,.extension-preview-buttons>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.extension-buttons>.btn-group:last-child>.btn,.extension-preview-buttons>.btn-group:last-child>.btn,.extension-buttons>.btn-group:last-child>.btn,.extension-preview-buttons>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.extension-preview-buttons{position:absolute;right:0;bottom:0;z-index:40;background-color:#e4ebf1;border:1px solid #cfdae5;border-radius:4px;cursor:move}.extension-preview-buttons.animate{-webkit-transition:350ms ease-in-out all;transition:350ms ease-in-out all}.extension-preview-buttons .btn-group .btn{position:initial;border:0}.extension-preview-buttons .dropdown-menu{margin-top:6px;margin-bottom:6px;padding-bottom:20px}.extension-preview-buttons hr{margin:0}.extension-preview-buttons .markdown-syntax,.extension-preview-buttons .table-of-contents{overflow-y:auto;overflow-x:hidden;padding-right:20px;margin-right:-20px;width:330px}.extension-preview-buttons .markdown-syntax{white-space:normal}.extension-preview-buttons .table-of-contents{padding:20px 0 15px;margin-left:-10px}.extension-preview-buttons .table-of-contents ul{margin-left:10px;padding-left:10px}.extension-preview-buttons .stat-button .value{vertical-align:text-top}.extension-preview-buttons .drag-me{color:#364d63}.extension-preview-buttons .drag-me i:before{width:5px}.modal-settings .modal-header{padding-bottom:0}.modal-settings textarea{max-width:100%;min-height:100px}.modal-settings .panel{border:0;border-radius:inherit;background:#fff;border-bottom:1px solid #f2f5f8;-webkit-box-shadow:none;box-shadow:none}.modal-settings .accordion-heading{padding:12px 15px}.modal-settings .accordion-heading .checkbox{margin-top:0;margin-bottom:0}.modal-settings .accordion-inner{border:0;padding:10px 40px 20px}.modal-settings .accordion-inner .form-horizontal .control-label{text-align:left}.modal-settings .accordion-inner .form-horizontal .form-inline .label-text{margin-left:15px}.modal-settings .tab-pane-button-container{width:220px;margin:10px auto 20px}.modal-settings .tab-pane-button-container .btn{text-align:start;padding-left:15px}.modal-settings .nav-tabs{margin:15px 0 0}.modal-settings .nav-tabs>li>a:hover,.modal-settings .nav-tabs>li>a:focus{color:#036;border-color:rgba(0,128,255,0.1);background-color:rgba(102,128,153,0.04);border-bottom-color:rgba(0,0,0,0)}.modal-settings .nav-tabs>li.active>a,.modal-settings .nav-tabs>li.active>a:hover,.modal-settings .nav-tabs>li.active>a:focus{color:#2c3f51;background-color:#fff;border-color:#ebf0f4;border-bottom-color:rgba(0,0,0,0);margin-bottom:-1px;padding:10px 15px 11px}.modal-manage-sync .sync-list,.modal-manage-publish .publish-list,.modal-manage-sharing .share-editor-list,.modal-manage-sharing .share-viewer-list{margin-bottom:20px}.modal-manage-sync .sync-list .entry,.modal-manage-publish .publish-list .entry,.modal-manage-sharing .share-editor-list .entry,.modal-manage-sharing .share-viewer-list .entry{margin-bottom:10px}.publish-custom-template-collapse{margin-bottom:0}.publish-custom-template-collapse textarea{max-width:100%;min-height:100px}.layout-wrapper-l1,.layout-wrapper-l2,.layout-wrapper-l3{position:absolute;top:0;left:0;overflow:hidden}.layout-animate{-webkit-transition:-webkit-transform 350ms ease-in-out;-moz-transition:-moz-transform 350ms ease-in-out;-o-transition:-o-transform 350ms ease-in-out;transition:transform 350ms ease-in-out}.layout-resizer{position:absolute;top:0;left:0;width:32px;height:32px}.layout-resizer.open{cursor:e-resize}.layout-vertical .layout-resizer.open{cursor:s-resize}.layout-toggler{position:absolute;top:0;left:0;padding:0;margin:0;width:32px;height:32px}.layout-toggler i{font-size:22px}.layout-toggler.layout-toggler-preview{line-height:55px}.layout-animate .layout-toggler.layout-toggler-preview{-webkit-transition:-webkit-transform 350ms ease-in-out;-moz-transition:-moz-transform 350ms ease-in-out;-o-transition:-o-transform 350ms ease-in-out;transition:transform 350ms ease-in-out}.layout-toggler.layout-toggler-preview i:before{content:'\e87d'}.layout-toggler.layout-toggler-preview.open>i:before{content:'\e87e'}.layout-vertical .layout-toggler.layout-toggler-preview{line-height:1.45}.layout-vertical .layout-toggler.layout-toggler-preview i:before{content:'\e87f'}.layout-vertical .layout-toggler.layout-toggler-preview.open>i:before{content:'\e880'}.layout-toggler.layout-toggler-navbar{line-height:0}.layout-toggler.layout-toggler-navbar i{font-size:16px;height:12px;overflow:hidden}@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;src:local('PT Sans'),local('PTSans'),url("../font/PTSans-Regular-webfont.woff") format('woff')}@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;src:local('PT Sans Bold'),local('PTSans-Bold'),url("../font/PTSans-Bold-webfont.woff") format('woff')}@font-face{font-family:'PT Sans';font-style:italic;font-weight:400;src:local('PT Sans Italic'),local('PTSans-Italic'),url("../font/PTSans-Italic-webfont.woff") format('woff')}@font-face{font-family:'PT Sans';font-style:italic;font-weight:700;src:local('PT Sans Bold Italic'),local('PTSans-BoldItalic'),url("../font/PTSans-BoldItalic-webfont.woff") format('woff')}#wmd-input{position:absolute;top:0;left:0;font-family:"PT Sans",sans-serif;line-height:1.65;letter-spacing:normal;border-radius:0;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none;padding:0;overflow:auto;white-space:pre-wrap;word-wrap:break-word;word-break:normal}#wmd-input>.editor-content{padding-bottom:230px}#wmd-input>.editor-margin{position:absolute;top:0;left:0}#wmd-input>.editor-margin .discussion{font-size:17px;position:absolute;cursor:pointer}#wmd-input>.editor-margin .discussion.new{display:none}#wmd-input>.editor-margin .discussion.new:hover,#wmd-input>.editor-margin .discussion.new.active,#wmd-input>.editor-margin .discussion.new.active:hover{display:inline-block;color:rgba(102,128,153,0.35) !important}#wmd-input>.editor-margin .discussion.added{color:rgba(235,192,0,0.7)}#wmd-input>.editor-margin .discussion.added:hover,#wmd-input>.editor-margin .discussion.added.active,#wmd-input>.editor-margin .discussion.added.active:hover{color:#ebc000 !important}#wmd-input>.editor-margin .discussion.replied{color:rgba(230,59,43,0.7)}#wmd-input>.editor-margin .discussion.replied:hover,#wmd-input>.editor-margin .discussion.replied.active,#wmd-input>.editor-margin .discussion.replied.active:hover{color:rgba(230,59,43,0.8) !important}#wmd-input>.editor-margin .discussion.icon-split{font-size:22px}#wmd-input>.editor-margin .discussion.icon-split:before{margin-right:0}#wmd-input>.editor-margin .discussion:hover,#wmd-input>.editor-margin .discussion.active{text-decoration:none}#wmd-input.has-selection>.editor-margin .discussion.new{display:inline-block;color:rgba(102,128,153,0.25)}#wmd-input.font-monospaced *{font-family:"Source Code Pro",monospace !important;line-height:1.65 !important;font-size:1em !important}#wmd-input.ace_editor{font-family:"Source Code Pro",monospace !important}#wmd-input .comment-highlight,#wmd-input .find-replace-highlight{background-color:rgba(255,230,0,0.5)}#wmd-input .find-replace-select{background-color:#b5d5ff}#wmd-input .conflict{font-weight:bold;color:#e63b2b}#wmd-input .ace_print-margin{margin-left:-20px;background:none !important}.editor .md,.editor .hr{color:rgba(102,128,153,0.6);font-style:normal;font-weight:normal}.editor .code,.editor .pre{color:#29333d;font:normal .9em "Source Code Pro",monospace}.editor .tag{color:#29333d;font:bold .9em "Source Code Pro",monospace}.editor .tag .punctuation,.editor .tag .attr-value,.editor .tag .attr-name{font-weight:normal}.editor .latex,.editor .math{color:#668099}.editor .entity{font:italic .9em "Source Code Pro",monospace;color:#668099}.editor .table{font:normal .9em "Source Code Pro",monospace}.editor .table *{font-size:1em}.editor .comment{font-size:.9em;color:rgba(102,128,153,0.6)}.editor .keyword{color:#47596b;font-weight:bold}.editor .code,.editor .img,.editor .imgref,.editor .md-toc{background-color:rgba(102,128,153,0.075);border-radius:4px;padding:.15em 0}.editor .md-toc{font-size:2.5em;padding:.2em}.editor .md-underlined-text{color:inherit}.editor .blockquote{color:#668099}.editor .h1,.editor .h2,.editor .h3,.editor .h4,.editor .h5,.editor .h6{font-weight:600}.editor .h1 .md-hash,.editor .h2 .md-hash,.editor .h3 .md-hash,.editor .h4 .md-hash,.editor .h5 .md-hash,.editor .h6 .md-hash{color:rgba(102,128,153,0.4)}.editor .h1,.editor .h11{font-size:1.7em}.editor .h2,.editor .h22{font-size:1.4em}.editor .h3{font-size:1.2em}.editor .h4{font-size:1.1em}.editor .h5{font-size:1em}.editor .h6{font-size:.9em}.editor .em,.editor .em .md{font-style:italic}.editor .strong,.editor .strong .md{font-weight:bold}.editor .md-strike-text{text-decoration:line-through}.editor .url,.editor .email,.editor .md-underlined-text{text-decoration:underline}.editor .linkdef .url{color:rgba(102,128,153,0.6)}.editor .img,.editor .imgref{padding:.2em .4em;padding-right:0}.editor .md-bang,.editor .md-alt,.editor .md-title{color:#587ea4}.editor .md-checkbox{display:inline-block;font-size:0}.editor .md-checkbox:before{content:"\2610";font-size:26px;vertical-align:-1px;line-height:0;cursor:pointer}.editor .md-checkbox.checked:before{content:"\2611"}.editor .md-checkbox.checked+.md-checkbox-content{text-decoration:line-through}.ace_dark .md,.ace_dark .hr{color:rgba(139,158,177,0.8)}.ace_dark .code,.ace_dark .img,.ace_dark .imgref,.ace_dark .md-toc{background-color:rgba(0,0,0,0.33)}.ace_dark .tag{color:#868686}.ace_dark .code,.ace_dark .pre{color:#868686}.find-replace{position:absolute;bottom:0;width:410px;background-color:#f6f7f9;padding:15px 20px;border-top:1px solid #dee6ed;border-right:1px solid #dee6ed;border-top-right-radius:6px}.find-replace .form-group{width:180px;padding:0 5px}.find-replace .close{position:absolute;right:20px;top:10px}.preview-panel{position:absolute;top:0;left:0;overflow:hidden;-webkit-box-shadow:inset 1px 0 rgba(0,128,255,0.06);box-shadow:inset 1px 0 rgba(0,128,255,0.06);z-index:9}.layout-animate .preview-panel{-webkit-transition:350ms ease-in-out all;transition:350ms ease-in-out all}.layout-vertical .preview-panel{-webkit-box-shadow:inset 0 1px rgba(0,128,255,0.06);box-shadow:inset 0 1px rgba(0,128,255,0.06)}.preview-container{position:absolute;overflow:auto}.wmd-prompt-background{display:none}div.dropdown-menu{padding:5px 20px;background-color:#475160}div.dropdown-menu p,div.dropdown-menu blockquote{margin:10px 0}div.dropdown-menu .stat{margin:20px 0 10px}div.dropdown-menu i{margin-right:0}div.dropdown-menu textarea{width:250px;height:150px;resize:none}div.dropdown-menu a:hover,div.dropdown-menu a:focus{color:#0f4d8a}div.dropdown-menu h1,div.dropdown-menu h2,div.dropdown-menu h3{margin:1em 0}.title-icon-category{display:inline-block;opacity:.15;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=15);filter:alpha(opacity=15);margin-top:-2px;margin-left:-2px;margin-right:3px;font-size:1em;vertical-align:top}.file-title-navbar .title-icon-category{font-size:16px}.picker-dialog{z-index:1050 !important}.picker-dialog-bg{z-index:1040 !important}.tooltip-inner{text-align:left}.tooltip li{line-height:1.4}input[type="file"]{line-height:inherit;height:inherit;border:none !important}.drop-zone{border:2px dashed #bbb;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;padding:40px;text-align:center;font-size:24px;color:#bbb}.modal-import-harddrive-html textarea{width:530px;max-width:530px;height:120px}.label.comment{white-space:inherit}.sharing-tweet{float:left;margin:5px 10px 0 0}.popover{max-width:350px;padding:15px}.popover .popover-title{font-weight:300;font-size:24px;padding:10px 15px}.popover .disabled{display:none}.popover iframe{position:absolute}.comments-popover .popover{max-width:230px;padding:10px 20px 0}.comments-popover .popover .popover-title{padding:5px 0 15px;border-bottom:1px solid rgba(102,128,153,0.1);line-height:1.1;overflow:hidden}.comments-popover .popover .popover-title .action-remove-discussion{font-size:16px;line-height:22px}.comments-popover .popover .popover-content{margin:0;padding:0}.comments-popover .popover .popover-content .scrollport{overflow:auto;max-height:230px;padding:10px 20px 0;margin:0 -20px}.comments-popover .popover .popover-content .btn{padding:6px 11px}.comments-popover .popover .popover-content .comment-block{margin-bottom:5px}.comments-popover .popover .popover-content .form-group,.comments-popover .popover .popover-content blockquote{margin-bottom:10px;padding:0}.comments-popover .popover .popover-content .comment-author{font-weight:bold;color:#2c3f51}.comments-popover .popover .popover-content .icon-comment{font-size:15px;color:rgba(235,192,0,0.6)}.comments-popover .popover .popover-content .reply .icon-comment{color:rgba(230,59,43,0.7)}.comments-popover .popover .popover-content .new-comment-block .icon-comment{color:rgba(102,128,153,0.35)}.comments-popover .popover .popover-content .input-comment-author{border:none;background:none;-webkit-box-shadow:none;box-shadow:none;font-weight:bold;height:28px;padding:0 0 5px;width:140px;display:inline-block}.comments-popover .popover .popover-content hr{margin:0 0 10px}.comments-popover .popover.top .arrow,.comments-popover .popover.bottom .arrow{margin-right:1px;border-right-width:0}.comments-popover .popover.top .arrow:after,.comments-popover .popover.bottom .arrow:after{margin-left:-11px;border-right-width:0}.comments-popover .popover.top .arrow:after{bottom:2px}.comments-popover .popover.bottom .arrow:after{top:2px}div.jGrowl{z-index:1040;font-size:14px}div.jGrowl.bottom-right{right:35px}div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(115,128,140,0.9);width:240px;margin:6px 0;padding:10px 12px;-ms-filter:none;filter:none;border-radius:4px;font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif}div.jGrowl div.jGrowl-notification{min-height:65px}.viewer .document-panel .search-bar{padding:20px 20px 10px}.viewer .document-panel .search-bar .input-group-btn{display:none}.viewer .navbar .file-title-navbar{cursor:initial;-webkit-box-shadow:none;box-shadow:none}@media print{html,body{background:transparent !important;overflow:visible !important}.layout-wrapper-l1>*,.layout-wrapper-l2>*,.layout-wrapper-l3>*,.preview-panel>*,#titlebar,#ime-focus-saver{display:none !important}.layout-wrapper-l2:before{visibility:hidden}.layout-wrapper-l1,.layout-wrapper-l2,.layout-wrapper-l3,.preview-panel,.preview-container{background:transparent !important;display:block !important;position:static !important;overflow:visible !important;width:auto !important;height:auto !important;-webkit-transform:translate(0, 0) !important;-ms-transform:translate(0, 0) !important;transform:translate(0, 0) !important;-webkit-box-shadow:none !important;box-shadow:none !important}#preview-contents{padding:0 50px !important}#images_area{display:none}thead{display:table-header-group}tr,img,svg,pre,blockquote,p{page-break-inside:avoid}img{max-width:100% !important}h2,h3{page-break-after:avoid}select{background:#fff !important}}.layout-toggler{display:none}.editor-navbar{-webkit-transition:none;transition:none;position:absolute;z-index:10;right:50%;background:none !important;margin-top:6px;margin-right:20px}.editor-navbar .editor-navbar-bg{width:100%;height:100%;position:absolute;left:0;top:0;opacity:.8;pointer-events:none;border-radius:4px}.editor-navbar .btn{color:inherit;opacity:.5}.editor-navbar .btn:hover{opacity:.9}.editor-navbar .btn:active,.editor-navbar .btn:focus{color:inherit !important}.editor-navbar .btn-success:hover,.editor-navbar .btn-success:focus,.editor-navbar .btn-success:active,.editor-navbar .btn-success.active,.editor-navbar .open .dropdown-toggle.btn-success{color:inherit !important}.preview-buttons-container .btn{color:rgba(102,128,153,0.35)}.preview-buttons-container .btn:hover,.preview-buttons-container .btn:active,.preview-buttons-container .btn:focus{color:#036}.preview-buttons-container .btn,.editor-navbar-buttons .btn{font-size:16px}.editor-navbar-buttons>.btn-group{display:inline-block}.wmd-buttons-group{display:inline-block}.wmd-buttons-group .wmd-button-group1{opacity:0;-webkit-transition:all ease-in-out .2s;transition:all ease-in-out .2s;-webkit-transition-delay:.6s;transition-delay:.6s}.wmd-buttons-group .wmd-button-group1 li{display:none}.wmd-buttons-group:hover .wmd-button-group1{opacity:1;visibility:visible}.wmd-buttons-group:hover .wmd-button-group1 li{display:block}.shrink-editor-btn{display:none}.file-status-lock{display:none}.resize-editor-btn{position:fixed;right:50%;bottom:10px;margin-right:20px}.open-folder-btn{background:none;border:2px solid;border-radius:0 10px 10px 0;padding:1px 4px;left:-5px;top:6px;position:absolute;border-color:inherit;opacity:.5;z-index:10;color:inherit}.open-folder-btn:hover{color:inherit;opacity:.9}.profile-btn{top:10px;background:none;box-shadow:none;padding:3px;border:2px solid rgba(102,128,153,0.35);border-radius:40px;margin-left:10px}.profile-btn:hover{border-color:#036}.preview-buttons-container{position:absolute;z-index:100;margin-top:6px;right:20px}.ui-layout-resizer-south-closed .preview-buttons-container{display:none !important}.preview-buttons-container .btn-group .btn{position:initial}.preview-buttons-container .dropdown-menu{padding-bottom:20px}.preview-buttons-container .markdown-syntax,.preview-buttons-container .table-of-contents{overflow-y:auto;overflow-x:hidden;padding-right:20px;margin-right:-20px;width:330px}.preview-buttons-container .markdown-syntax{white-space:normal;max-height:350px}.preview-buttons-container .table-of-contents{margin-left:-10px;max-height:400px}.preview-buttons-container .table-of-contents ul{margin-left:10px;padding-left:10px}#theme-list{max-height:500px;overflow-x:hidden;overflow-y:scroll}.editor-hosted-buttons{display:inline-block}#app_wrap.no-preview .preview-buttons{display:inline-block}.preview-buttons{padding-right:10px}.full-editor-btn.open .icon-resize-full{display:inline-block}.full-editor-btn.open .icon-resize-small-1{display:none}.full-editor-btn .icon-resize-full{display:none}.full-editor-btn .icon-resize-small-1{display:inline-block}#app_wrap.no-preview .editor-navbar{-webkit-transition:all ease-in-out .2s;transition:all ease-in-out .2s;right:20px;margin-right:0}.dropdown-menu{background-color:#546072;border-color:#3e4755}.dropdown-menu>li>a{color:#eee;padding:5px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#eee;background-color:#4b5666;border-color:#475160}.dropdown-menu>li>a.selected{background:#74b936 !important;color:#fff !important}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{border-color:transparent}.menu-panel .panel-content,.document-panel .panel-content{background-color:#546072}.modal-content,.panel-content{-webkit-box-shadow:0 1px 4px 2px rgba(0,0,0,0.3);box-shadow:0 1px 4px 2px rgba(0,0,0,0.3)}.document-panel .panel-content{border-right:1px solid #434c5b;border-left:none}.menu-panel .panel-content{border-left:1px solid #434c5b;border-right:none}.list-group .nav{border-left:10px solid #e4ebf1;margin-left:15px}.list-group .nav>li>a{border-top:1px solid rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0)}.list-group .nav>li>a:hover,.list-group .nav>li>a:focus{border-top-color:#475160;border-bottom-color:#475160}.list-group .nav>li>a.active{border-top-color:rgba(0,128,255,0.05);border-bottom-color:rgba(0,128,255,0.05)}.list-group .nav>li:focus{outline:none}.list-group .nav>li.active>a{background:#4b5666;border-top-color:rgba(0,128,255,0.05);border-bottom-color:rgba(0,128,255,0.05)}.nav-pills>li>a{border:1px solid rgba(0,0,0,0)}.nav-pills>li>a:hover,.nav-pills>li>a:focus{border-color:#475160}.nav-pills>li.disabled>a:hover,.nav-pills>li.disabled>a:focus{border-color:rgba(0,0,0,0)}.nav-pills>li.open>a,.nav-pills>li.open>a:hover,.nav-pills>li.open>a:focus{border-color:#475160}.list-group-item{padding:10px 15px;margin-bottom:0}.list-group .list-group-item{border-radius:0;background:#546072}.list-group-item:hover,.list-group-item:focus,.active .list-group-item{border-top-color:#475160;border-bottom-color:#475160;background:#4b5666 !important}a.list-group-item:hover,a.list-group-item:focus{color:#eee}.username{padding:10px 20px;background:#454f5d;color:#fff;margin-top:-6px}.vip-status{float:right;background:#74b936;color:#fff;border-radius:20px;padding:2px;-webkit-transition:all ease-in-out 0.35s;transition:all ease-in-out 0.35s;cursor:pointer}.vip-status .renew{padding:0 6px;display:none}.vip-status:hover .renew{display:inline}.vip-status.expired{background:#ccc}.vip-status .icon{margin-right:0}.menu-panel i{margin-right:2px}.menu-panel .sub-menu{background:#4b5666;box-shadow:#000 0 0 7px -4px inset}.menu-panel .sub-menu a{color:#eee}.menu-panel .sub-menu .nav{margin-left:0;border-left:none;margin:0}.menu-panel .sub-menu .nav li:hover{background:#454f5d}.document-panel.panel-open{width:385px}.document-panel .panel-content{background-color:#546072;padding-top:60px;border-right:1px solid #434c5b}.document-panel .panel-content .icon-layers{font-size:135%}.document-panel .search-bar{position:absolute;background-color:#475160;margin:-10px 25px 0;padding:20px 5px 10px 15px;z-index:3;border:1px solid #3e4755;border-top:0;border-radius:6px;width:100%;margin:0;border-radius:0;box-shadow:none;padding:10px 10px}.document-panel .search-bar .input-group-addon{color:#eee;background-color:#546072;border-color:#3e4755;border-left:1px solid #3e4755}.document-panel .search-bar input[type='text']{border-color:#3e4755}#search-and-sync input{width:calc(100% - 30px)}#search-and-sync .input-group-addon,#search-and-sync input{border-radius:4px;border-bottom-right-radius:4px;border-top-right-radius:4px;border-bottom-left-radius:4px;border-top-left-radius:4px}.file-action{float:right;display:none}.file-action i{padding-top:2px}.file-item:hover .file-action,li.active>.file-item .file-action{display:block}.file-item:hover .file-notebook,li.active>.file-item .file-notebook{display:none}.file-item .label{margin-top:2px}.file-item .file-notebook{float:right;opacity:.8;max-width:130px;overflow:hidden;text-overflow:ellipsis}.file-item.synced{color:#bbb}.file-status-label{color:#aaa}.document-list{height:100%;overflow:auto}.document-list ul>li.active .file-item{background:#74b936 !important;color:#fff}.document-list ul>li.active .file-status-label{color:#fff}.document-list ul>li.active .label-success{background:#2a4313}.footer-left-btn{float:left;position:relative}.extension-preview-buttons{background-color:#546072;border-color:#3e4755}.extension-preview-buttons .drag-me{color:#eee}.extension-preview-buttons .btn-success{color:#eee}.extension-preview-buttons .btn-success:hover,.extension-preview-buttons .btn-success:active{color:#eee !important;background-color:#454f5d !important}.extension-preview-buttons .open .btn-success{color:#eee !important;background-color:#454f5d !important}.extension-preview-buttons .dropdown-menu{background-color:#fff;border-color:#dee6ed}.extension-preview-buttons.closed{opacity:.25;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=25);filter:alpha(opacity=25)}.extension-preview-buttons.closed.info-tooltip-container{opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}.atwho-view-ul{max-height:300px;overflow:scroll;position:relative}#app_wrap.readonly .editor-navbar-buttons,#app_wrap.readonly .save-file{display:none}#app_wrap.readonly .file-status-lock{display:inline-block}.markdown-syntax pre{margin:0;background:none;font-size:12px}.markdown-syntax table td{border:2px solid #fff}.markdown-syntax table tr td:first-child{background:#91b82d;color:#fff;font-weight:bold}.markdown-syntax table tr td{background:#eee}.markdown-syntax table tr td i{font-size:12px;color:#aaa;font-style:initial}.markdown-syntax table tr td:last-child{background:#fff}.markdown-syntax kbd{padding:.1em .6em;border:1px solid #ccc;font-size:11px;background-color:#f7f7f7;color:#333;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;box-shadow:0 1px 0 rgba(0,0,0,0.2),0 0 0 2px #fff inset;border-radius:3px;display:inline-block;margin:0 .2em;text-shadow:0 1px 0 #fff;line-height:1.4;white-space:nowrap}.modal-help .modal-dialog{width:870px}.modal-help .modal-dialog .markdown-table{float:left}.modal-help .modal-dialog .key-table{float:right}.modal-changelog .modal-dialog .modal-body{text-align:left}#toggle-preview{display:none}.full-preview{overflow-x:hidden;overflow-y:scroll;padding:0;background:#fff}.full-preview .layout-wrapper-l3{overflow-x:hidden;overflow-y:scroll}.full-preview #wmd-input,.full-preview #ace-input,.full-preview .extension-preview-buttons,.full-preview .editor-navbar,.full-preview .modal-backdrop,.full-preview .preview-buttons,.full-preview .open-folder-btn{display:none}.full-preview .preview-container{width:auto !important;position:relative;height:auto !important;overflow-y:hidden}.full-preview .preview-panel{position:relative;max-width:960px;margin:auto;left:0;width:auto !important;height:auto !important;transform:none !important;-webkit-transform:none !important;-ms-transform:none !important;overflow:visible;display:block !important;min-height:100%;-webkit-transition:all ease-in-out .4s;transition:all ease-in-out .4s;-webkit-box-shadow:none;box-shadow:none}.full-preview .preview-panel:before{background:inherit;content:' ';position:absolute;width:100%;height:100%;top:0;left:-100%}.full-preview .preview-panel:after{background:inherit;content:' ';position:absolute;width:100%;height:100%;top:0;right:-100%}.full-preview #toggle-preview{display:block;font-size:24px;position:absolute;right:10px;top:10px;color:#aaa;cursor:pointer;color:rgba(102,128,153,0.35);z-index:10}.full-preview #toggle-preview:hover,.full-preview #toggle-preview:active,.full-preview #toggle-preview:focus{color:#036}#readme,#images_area{display:none}#titlebar{height:20px;line-height:18px;z-index:1000000}#titlebar~.layout-wrapper-l1{top:20px}#titlebar~.layout-wrapper-l1 .open-folder-btn{top:22px}#titlebar [class^='icon']:before{margin:0 .1em}#titlebar i{opacity:.8;cursor:pointer}#titlebar i:hover{opacity:.9}#titlebar .window-file{position:absolute;left:1px}#titlebar-bg{position:absolute;width:100%;height:100%;-webkit-filter:contrast(112%)}#dragbar{height:100%;-webkit-app-region:drag;overflow:hidden;margin:0 20px}#dragbar.disabled{-webkit-app-region:no-drag}.window_resizer{float:right;margin-top:1px}.editor-hosted-buttons{display:inline-block}.window-fullscreen{position:absolute;right:4px;top:-1px}body.app .open-folder-btn{display:none}body.app .for-mac{display:none}body.app.mac .window_resizer{display:none}body.app.mac .window_resizer.for-mac{float:left;display:flex;margin-left:4px;margin-top:0}body.app.mac #titlebar .window-file{position:static;order:4;margin-left:15px}body.app.mac #titlebar i{margin:1px}body.app.mac .window-close{order:1}body.app.mac .window-min{order:2}body.app.mac .window-max{order:3}body.app img[src^='http']{animation:img_load .1s;-webkit-animation:img_load .1s}body.app .preview-container{-webkit-user-select:all}@-webkit-keyframes img_load{0%{opacity:.9}100%{opacity:1}}#settings .col-lg-4{float:left;text-align:right;width:33.33333333%}#settings .col-lg-7{float:left;width:58.33333333%}#settings .form-inline .col-lg-7{width:58.33333333%}#settings .form-inline .form-control{display:inline-block}#settings .form-inline *{float:none}#settings .help-block{font-size:12px}#settings .form-control{height:34px}#settings textarea.form-control{width:100%}.toast-warning:before{content:"\e859"}.toast-error:before{content:"\e81b"}.toast-info:before{content:"\e829"}.toast-success:before{content:"\e817"}.modal.slim .modal-dialog{width:400px}.modal.slim .modal-title{text-align:inherit}.modal.slim .modal-content{background:#fff;text-align:center}.modal.slim .modal-content p{color:#777}.modal.slim .modal-body{padding-top:0;padding-bottom:0}.modal.slim .modal-footer{border:none;text-align:center}.modal.slim .modal-header{border:none;color:#546072}.modal.slim .btn-primary{background:#74b936;color:#fff}.modal.slim .btn-primary:hover,.modal.slim .btn-primary:active,.modal.slim .btn-primary:focus{background:#68a530 !important}.modal-dialog.slim .modal-header{padding:10px 15px}.modal-dialog.slim .modal-body{padding:10px 20px}.modal-dialog.slim .modal-footer{padding:10px;background-color:#fff}.modal.error .modal-header{color:#b90b0b}#ace-input{display:none}.layout-wrapper-l2:before{position:absolute;content:'';width:100%;height:100%;background:#f9fafb}#preview-contents{margin-top:30px}.ace_dark .ace_gutter{color:#aaa !important;background:rgba(0,0,0,0.2) !important}.ace_gutter-layer{width:40px !important}.ace_gutter-cell{padding-left:0 !important}#loading{position:fixed;top:0;left:0;bottom:0;right:0;z-index:10000000;background:#fff;color:#74b936;text-align:center}#loading .loading-container{position:absolute;margin:auto;left:0;right:0;top:30%;bottom:0}#loading b{color:#fff;background:#74b936;font-weight:normal;padding:5px 5px;margin:10px;font-size:50px}#loading h1,#loading h2,#loading h3,#loading h4{font-family:"Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,sans-serif;text-align:center}#loading .reverse{color:#fff !important;background:#74b936 !important;padding:4px;border-radius:4px}#loading #loading-app-name{text-align:center;font-size:54px;margin-top:0;margin-bottom:.8em}#loading #loading-slogan{font-weight:normal}#loading #loading-text{margin:80px auto;text-align:center;margin-bottom:40px}#loading #loading-view-doc{font-size:16px;margin:10px auto}#loading #loading-view-doc a{padding:10px;border-radius:6px;border:1px solid #74b936}#loading #loading-view-doc a:link,#loading #loading-view-doc a:hover,#loading #loading-view-doc a:active,#loading #loading-view-doc a:visited{color:#74b936;text-decoration:none}.slim-scroll ::-webkit-scrollbar{height:10px;width:7px;background:transparent}.slim-scroll ::-webkit-scrollbar:hover{background:rgba(128,128,128,0.1)}.slim-scroll ::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.3);-webkit-border-radius:6px}.slim-scroll ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.6)}.slim-scroll ::-webkit-scrollbar-corner{background:#000}.slim-scroll .ace_dark .ace_scrollbar::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.3);-webkit-border-radius:6px}.slim-scroll .ace_dark .ace_scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.6)}.slim-scroll .ace_scroller{right:4px !important}.slim-scroll .ace_scrollbar-v{right:4px !important}.slim-scroll #preview{right:2px}.atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:#fff;color:#000;border:1px solid #ddd;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,0.1);min-width:120px;z-index:11110 !important}.atwho-view .cur{background:#36f;color:#fff}.atwho-view .cur small{color:#fff}.atwho-view strong{color:#36f}.atwho-view .cur strong{color:#fff;font:bold}.atwho-view ul{list-style:none;padding:0;margin:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid #ddd;cursor:pointer}.atwho-view small{font-size:smaller;color:#777;font-weight:normal}</style>
</head>

<body style="width: 900px;margin: 2em auto;">
    <div id="wmd-preview" class="preview-content"></div>
    <div id="wmd-preview-section-16926" class="wmd-preview-section preview-content">
    </div>
    <div id="wmd-preview-section-16927" class="wmd-preview-section preview-content">
        <h1 id="json-api-规范">JSON API 规范</h1>
        <hr>
        <blockquote>
            <p>本文定义了一个标准的 JSON API规范，即一个应用于 Web 前后端 Ajax数据交互规范，用以定义客户端如何获取与修改资源，以及服务器如何响应对应请求。</p>
            <p>JSON API设计用来最小化请求的数量，以及客户端与服务器间传输的数据量。在高效实现的同时，无需牺牲可读性、灵活性和可发现性。</p>
            <p>JSON API需要使用JSON API媒体类型(<a href="http://www.iana.org/assignments/media-types/application/vnd.api+json" target="_blank"><code>application/vnd.api+json</code></a>) 进行数据交互。</p>
            <p>JSON API 服务器支持通过GET方法获取资源。而且必须独立实现 HTTP POST, PUT 和 DELETE 方法的请求响应，以支持资源的创建、更新和删除。</p>
            <p>JSON API服务器也可以选择性支持HTTP PATCH方法 [<a href="http://tools.ietf.org/html/rfc5789" target="_blank">RFC5789</a>]和 JSON Patch格式 [<a href="http://tools.ietf.org/html/rfc6902" target="_blank">RFC6902</a>]，进行资源修改。JSON Patch 支持是可行的，因为理论上来说，JSON API 通过单一 JSON 文档，反映域下的所有资源，并将 JSON 文档作为资源操作介质。在文档顶层，依据资源类型分组。每个资源都通过文档下的唯一路径辨识。</p>
        </blockquote>
    </div>
    <div id="wmd-preview-section-16928" class="wmd-preview-section preview-content">
        <h2 id="相关的文档模块">相关的文档模块</h2>
        <ul>
            <li><a href="http://index.md" target="_blank">JsonAPI规范</a></li>
            <li><a href="http://demo.md" target="_blank">API的封装样例</a></li>
            <li><a href="http://errors.md" target="_blank">API的错误样例</a></li>
            <li><a href="http://statuscode.md" target="_blank">http的状态码描述</a></li>
            <li><a href="http://header.md" target="_blank">http的header头说明</a></li>
        </ul>
    </div>
    <div id="wmd-preview-section-16929" class="wmd-preview-section preview-content">
        <h2 id="本文导航">本文导航</h2>
        <div>
            <div class="toc">
                <div class="toc">
                    <ul>
                        <li><a href="#json-api-规范">JSON API 规范</a>
                            <ul>
                                <li><a href="#相关的文档模块">相关的文档模块</a></li>
                                <li><a href="#本文导航">本文导航</a></li>
                                <li><a href="#规则约定">规则约定</a></li>
                                <li><a href="#文档结构">文档结构</a>
                                    <ul>
                                        <li><a href="#top-level">Top Level</a></li>
                                        <li><a href="#常见的api-top-level主键说明">常见的APi Top Level主键说明</a></li>
                                        <li><a href="#资源表示">资源表示</a>
                                            <ul>
                                                <li><a href="#个体资源表示">个体资源表示</a></li>
                                                <li><a href="#资源集合表示">资源集合表示</a></li>
                                            </ul>
                                        </li>
                                        <li><a href="#多资源对象">多资源对象</a>
                                            <ul>
                                                <li><a href="#资源属性">资源属性</a></li>
                                                <li><a href="#资源-ids">资源 IDs</a></li>
                                                <li><a href="#资源类型">资源类型</a></li>
                                                <li><a href="#资源-urls">资源 URLs</a></li>
                                                <li><a href="#资源关联">资源关联</a>
                                                    <ul>
                                                        <li><a href="#单对象关联">单对象关联</a></li>
                                                        <li><a href="#多对象关联">多对象关联</a></li>
                                                    </ul>
                                                </li>
                                            </ul>
                                        </li>
                                        <li><a href="#集合对象">集合对象</a></li>
                                        <li><a href="#url模板">URL模板</a></li>
                                        <li><a href="#复合文档">复合文档</a></li>
                                    </ul>
                                </li>
                                <li><a href="#urls">URLs</a>
                                    <ul>
                                        <li><a href="#关联文档">关联文档</a></li>
                                        <li><a href="#资源集合urls">资源集合URLs</a></li>
                                        <li><a href="#单独资源urls">单独资源URLs</a></li>
                                        <li><a href="#替代性urls">替代性URLs</a></li>
                                        <li><a href="#关联-urls">关联 URLs</a></li>
                                    </ul>
                                </li>
                                <li><a href="#资源获取">资源获取</a>
                                    <ul>
                                        <li><a href="#过滤">过滤</a></li>
                                        <li><a href="#内链资源">内链资源</a></li>
                                        <li><a href="#稀疏字段">稀疏字段</a></li>
                                        <li><a href="#排序">排序</a></li>
                                    </ul>
                                </li>
                                <li><a href="#创建更新删除资源">创建，更新，删除资源</a>
                                    <ul>
                                        <li><a href="#创建资源">创建资源</a>
                                            <ul>
                                                <li><a href="#创建单独资源">创建单独资源</a></li>
                                                <li><a href="#创建多个资源">创建多个资源</a></li>
                                                <li><a href="#响应">响应</a>
                                                    <ul>
                                                        <li><a href="#201-状态码">201 状态码</a></li>
                                                        <li><a href="#其它响应">其它响应</a></li>
                                                    </ul>
                                                </li>
                                                <li><a href="#客户端生成-ids">客户端生成 IDs</a></li>
                                            </ul>
                                        </li>
                                        <li><a href="#更新资源">更新资源</a>
                                            <ul>
                                                <li><a href="#更新单独资源">更新单独资源</a></li>
                                                <li><a href="#更新多个资源">更新多个资源</a></li>
                                                <li><a href="#更新属性">更新属性</a></li>
                                                <li><a href="#更新关联">更新关联</a>
                                                    <ul>
                                                        <li><a href="#更新单对象关联">更新单对象关联</a></li>
                                                        <li><a href="#更新多关联对象">更新多关联对象</a></li>
                                                    </ul>
                                                </li>
                                            </ul>
                                        </li>
                                        <li><a href="#响应-1">响应</a>
                                            <ul>
                                                <li><a href="#204-no-content">204 No Content</a></li>
                                                <li><a href="#200-ok">200 OK</a></li>
                                                <li><a href="#其它响应-1">其它响应</a></li>
                                            </ul>
                                        </li>
                                        <li><a href="#资源删除">资源删除</a>
                                            <ul>
                                                <li><a href="#响应-2">响应</a>
                                                    <ul>
                                                        <li><a href="#204-no-content-1">204 No Content</a></li>
                                                        <li><a href="#其它响应-2">其它响应</a></li>
                                                    </ul>
                                                </li>
                                            </ul>
                                        </li>
                                    </ul>
                                </li>
                                <li><a href="#errors">Errors</a></li>
                                <li><a href="#patch-support">PATCH Support</a>
                                    <ul>
                                        <li><a href="#请求-urls">请求 URLs</a></li>
                                        <li><a href="#创建资源with-patch">创建资源with PATCH</a></li>
                                        <li><a href="#更新属性with-patch">更新属性with PATCH</a></li>
                                        <li><a href="#更新关联with-patch">更新关联with PATCH</a>
                                            <ul>
                                                <li><a href="#关联更新with-patch">关联更新with PATCH</a></li>
                                                <li><a href="#更新多对象关联-with-patch">更新多对象关联 with PATCH</a></li>
                                            </ul>
                                        </li>
                                        <li><a href="#删除资源with-patch">删除资源with PATCH</a></li>
                                        <li><a href="#响应-3">响应</a>
                                            <ul>
                                                <li><a href="#204-no-content-2">204 No Content</a></li>
                                                <li><a href="#200-ok-1">200 OK</a></li>
                                                <li><a href="#其它响应-3">其它响应</a></li>
                                            </ul>
                                        </li>
                                    </ul>
                                </li>
                                <li><a href="#http-缓存">HTTP 缓存</a></li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>
    <div id="wmd-preview-section-16930" class="wmd-preview-section preview-content">
        <h2 id="规则约定">规则约定</h2>
        <p>文档中的关键字， “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
            <br> “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” 依据RFC 2119
            <br> [
            <a href="http://tools.ietf.org/html/rfc2119" target="_blank">RFC2119</a>]规范解释。</p>
    </div>
    <div id="wmd-preview-section-16931" class="wmd-preview-section preview-content">
        <h2 id="文档结构">文档结构</h2>
        <p>这一章节描述JSON API文档结构，通过媒体类型<a href="http://www.iana.org/assignments/media-types/application/vnd.api+json" target="_blank"><code>application/vnd.api+json</code></a>标示。JSON API文档使用javascript 对象（JSON）[<a href="http://tools.ietf.org/html/rfc4627" target="_blank">RFC4627</a>]定义。</p>
        <p>尽管同种媒体类型用以请求和响应文档，但某些特性只适用于其中一种。差异在下面呈现。</p>
    </div>
    <div id="wmd-preview-section-16932" class="wmd-preview-section preview-content">
        <h3 id="top-level">Top Level</h3>
        <p>JSON 对象必须位于每个JSON API文档的根级。这个对象定义文档的“top level”。</p>
        <p>文档的top level必须包含请求资源或者请求资源集合的实例 (即主要资源)。</p>
        <p>主要资源应该以 <code>资源类型</code> 或者通用键 <code>"data"</code> 索引.</p>
    </div>
    <div id="wmd-preview-section-27288" class="wmd-preview-section preview-content">
        <h3 id="常见的api-top-level主键说明">常见的APi Top Level主键说明</h3>
        <ul>
            <li><code>"code"</code> - 自定义的资源响应状态编码或错误码，<strong>必须的键值，其值必须是整型数字，而且必须大于等于零</strong>。</li>
            <li><code>"message"</code>-可选，字符串，对 <code>code</code> 做进一步描述。当<code>code</code>的值 为 0 时，<code>message</code> 的值可选，当 <code>code</code> 的值大于 <code>0</code> 时，<code>message</code> 的值必填。</li>
            <li><code>"data"</code> - 主要资源的通用主键。可选值，用来存储返回的实体数据。如果 <code>data</code>存在，<code>data-value</code>可为常规数据类型或复合数据类型。如果其为复合数据类型，则为“值对”数据结构，或多维“值对”数据结构。</li>
            <li><code>"id"</code> - 特定问题的唯一标示符。资源对象的保留字。</li>
            <li><code>"href"</code> - 提供特定问题更多细节的URI。资源对象的保留字。</li>
            <li><code>"status"</code> - 请求响应的HTTP状态码，详情请看<a href="http://statuscode.md" target="_blank">http 状态码描述</a>。</li>
            <li><code>"title"</code> - 简短的，可读性高的问题总结。除了国际化本地化处理之外，不同场景下，相同的问题，值是不应该变动的。</li>
            <li><code>"detail"</code> - 针对该问题的高可读性解释。</li>
            <li><code>"path"</code> - 关联资源中相关属性的相对路径。在单资源或单类型资源中出现的问题，这个值才是合适的。</li>
            <li><code>"meta"</code> - 资源的元信息，比如分页信息等</li>
            <li><code>"links"</code> - 扩展资源关联URLs的URL模板。资源对象的保留字</li>
            <li><code>"linked"</code> - 资源对象集合，按照类型分组，链接到主要资源或彼此（即链接资源）</li>
        </ul>
    </div>
    <div id="wmd-preview-section-16934" class="wmd-preview-section preview-content">
        <h3 id="资源表示">资源表示</h3>
        <p>这一章节描述JSON API文档如何表示资源。适用于主要资源和链接资源。</p>
    </div>
    <div id="wmd-preview-section-16935" class="wmd-preview-section preview-content">
        <h4 id="个体资源表示">个体资源表示</h4>
        <p>个体资源使用单一“资源对象”（如下描述）或者包含资源ID（如下描述）的字符串表示。</p>
        <p>The following post is represented as a resource object:
            <br> 下面的 <code>posts</code> 表示一个资源对象：</p>
    </div>
    <div id="wmd-preview-section-16936" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
    <span class="hljs-string">"status"</span>:<span class="hljs-number">200</span>,
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"data"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-comment">// ... attributes of this post</span>
  }
}</code></pre>
        <p>这个 posts 用ID简单地表示：</p>
    </div>
    <div id="wmd-preview-section-16937" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"posts"</span>: <span class="hljs-string">"1"</span>
}</code></pre>
    </div>
    <div id="wmd-preview-section-16938" class="wmd-preview-section preview-content">
        <h4 id="资源集合表示">资源集合表示</h4>
        <p>任意数量资源的集合应该使用资源对象数组，或者IDs数组，或者一个简单的”集合对象“表示。</p>
        <p>下面这个 <code>posts</code> 使用资源对象数组表示：</p>
    </div>
    <div id="wmd-preview-section-16939" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"posts"</span>: [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>
    <span class="hljs-comment">// ... attributes of this post</span>
  }, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>
    <span class="hljs-comment">// ... attributes of this post</span>
  }]
}</code></pre>
        <p>这个<code>posts</code>使用IDs数组表示：</p>
    </div>
    <div id="wmd-preview-section-16940" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"posts"</span>: [<span class="hljs-string">"1"</span>, <span class="hljs-string">"2"</span>]
}</code></pre>
        <p>这些<code>comments</code>使用单一集合对象表示：</p>
    </div>
    <div id="wmd-preview-section-16941" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"comments"</span>: {
    <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/comments/5,12,17,20"</span>,
    <span class="hljs-string">"ids"</span>: [ <span class="hljs-string">"5"</span>, <span class="hljs-string">"12"</span>, <span class="hljs-string">"17"</span>, <span class="hljs-string">"20"</span> ],
    <span class="hljs-string">"type"</span>: <span class="hljs-string">"comments"</span>
  }
}</code></pre>
    </div>
    <div id="wmd-preview-section-16942" class="wmd-preview-section preview-content">
        <h3 id="多资源对象">多资源对象</h3>
        <p>多个资源对象有相同的内部结构，不管他们表示主要资源还是链接资源。</p>
        <p>下面是一个可能出现在文档中的post（即<code>"posts"</code>类型的一个资源）：</p>
    </div>
    <div id="wmd-preview-section-16943" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"posts"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>
  }
}</code></pre>
        <p>在上面这个例子中，post的资源对象比较简单：</p>
    </div>
    <div id="wmd-preview-section-16944" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>
  }
<span class="hljs-comment">//...</span></code></pre>
        <p>这一章节专注于资源对象，在完整JSON API文档上下文环境之外。</p>
    </div>
    <div id="wmd-preview-section-16945" class="wmd-preview-section preview-content">
        <h4 id="资源属性">资源属性</h4>
        <p>资源对象有四个保留字:</p>
        <ul>
            <li><code>"id"</code></li>
            <li><code>"type"</code></li>
            <li><code>"href"</code></li>
            <li><code>"links"</code></li>
        </ul>
        <p>资源对象中的其它键表示一个“属性”。一个属性值可以是任何JSON值。</p>
    </div>
    <div id="wmd-preview-section-16946" class="wmd-preview-section preview-content">
        <h4 id="资源-ids">资源 IDs</h4>
        <p>每一个资源对象应该有一个唯一标示符，或者ID。如下所示，IDs可由服务器或者客户端指定，and <strong>SHOULD</strong> be unique for a resource when scoped by its type. ID应该使用 <code>"id"</code>键表示，值必须是字符串，且只包含字母，数字，连字符和下划线。</p>
        <p>URL 模板可以使用IDs来获取关联资源，如下所示。</p>
        <p>在特殊场景下，客户端与服务器之间的唯一标识符信息非必要，JSON API允许缺省IDs。</p>
    </div>
    <div id="wmd-preview-section-16947" class="wmd-preview-section preview-content">
        <h4 id="资源类型">资源类型</h4>
        <p>每个资源对象的类型通常由它所在的上下文环境决定。如上面讨论，资源对象在文档中通过类型索引。</p>
        <p>每一个资源对象可能包含 <code>"type"</code> 键来显示指定类型。</p>
        <p>当资源的类型在文档中未声明时，<code>"type"</code>键不可缺省。</p>
    </div>
    <div id="wmd-preview-section-16948" class="wmd-preview-section preview-content">
        <h4 id="资源-urls">资源 URLs</h4>
        <p>每一个资源的URL可能使用<code>"href"</code>键声明。资源URLs应该由服务器指定，因此通常包含在响应文档中。</p>
    </div>
    <div id="wmd-preview-section-16949" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/comments/1"</span>,
    <span class="hljs-string">"body"</span>: <span class="hljs-string">"Mmmmmakase"</span>
  }, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>,
    <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/comments/2"</span>,
    <span class="hljs-string">"body"</span>: <span class="hljs-string">"I prefer unagi"</span>
  }]
<span class="hljs-comment">//...</span></code></pre>
        <p>服务器对特定URL<code>GET</code>请求，响应内容必须包含资源。</p>
        <p>通常在响应文档的根层级声明URL 模板会更高效，而不是在每一个资源对象内声明独立的URLs。</p>
    </div>
    <div id="wmd-preview-section-16950" class="wmd-preview-section preview-content">
        <h4 id="资源关联">资源关联</h4>
        <p><code>"links"</code>键的值是一个表示链接资源的JSON对象，通过关联名索引。</p>
        <p>举例来说，下面的post与一个<code>author</code>和一个<code>comments</code>集合相关联：</p>
    </div>
    <div id="wmd-preview-section-16951" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"9"</span>,
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"5"</span>, <span class="hljs-string">"12"</span>, <span class="hljs-string">"17"</span>, <span class="hljs-string">"20"</span> ]
    }
  }
<span class="hljs-comment">//...</span></code></pre>
    </div>
    <div id="wmd-preview-section-16952" class="wmd-preview-section preview-content">
        <h5 id="单对象关联">单对象关联</h5>
        <p>单对象关联必须使用上面所述单资源形式的一种来表示。</p>
        <p>举例来说，下面的post与一个author相关联，通过ID标示：</p>
    </div>
    <div id="wmd-preview-section-16953" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"17"</span>
    }
  }
<span class="hljs-comment">//...</span></code></pre>
        <p>下面是一个示例，链接的author用一个资源对象表示：</p>
    </div>
    <div id="wmd-preview-section-16954" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: {
        <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/people/17"</span>,
        <span class="hljs-string">"id"</span>: <span class="hljs-string">"17"</span>,
        <span class="hljs-string">"type"</span>: <span class="hljs-string">"people"</span>
      }
    }
  }
<span class="hljs-comment">//...</span></code></pre>
        <p>空白的单对象关联应该用<code>null</code>值表示。举例来说，下面的post没有关联author:</p>
    </div>
    <div id="wmd-preview-section-16955" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-literal">null</span>
    }
  }
<span class="hljs-comment">//...</span></code></pre>
    </div>
    <div id="wmd-preview-section-16956" class="wmd-preview-section preview-content">
        <h5 id="多对象关联">多对象关联</h5>
        <p>多对象关联必须使用上述资源集合形式的一种来表示。</p>
        <p>举例来说，下面的post与多个comments关联，通过IDs标示：</p>
    </div>
    <div id="wmd-preview-section-16957" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"5"</span>, <span class="hljs-string">"12"</span>, <span class="hljs-string">"17"</span>, <span class="hljs-string">"20"</span> ]
    }
  }
<span class="hljs-comment">//...</span></code></pre>
        <p>这是一个使用集合对象链接的comments数组：</p>
    </div>
    <div id="wmd-preview-section-16958" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"comments"</span>: {
        <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/comments/5,12,17,20"</span>,
        <span class="hljs-string">"ids"</span>: [ <span class="hljs-string">"5"</span>, <span class="hljs-string">"12"</span>, <span class="hljs-string">"17"</span>, <span class="hljs-string">"20"</span> ],
        <span class="hljs-string">"type"</span>: <span class="hljs-string">"comments"</span>
      }
    }
  }
<span class="hljs-comment">//...</span></code></pre>
        <p>空白的多对象关联应该使用空数组表示。举例来说，下面的post没有comments：</p>
    </div>
    <div id="wmd-preview-section-16959" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs"><span class="hljs-comment">//...</span>
  {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"comments"</span>: []
    }
  }
<span class="hljs-comment">//...</span></code></pre>
    </div>
    <div id="wmd-preview-section-16960" class="wmd-preview-section preview-content">
        <h3 id="集合对象">集合对象</h3>
        <p>“集合对象”包含一个或多个元素：</p>
        <ul>
            <li><code>"ids"</code> - 关联资源的IDs数组。</li>
            <li><code>"type"</code> - 资源类型</li>
            <li><code>"href"</code> - 关联资源的URL（适用于响应文档）。</li>
        </ul>
        <p>提供包含<code>href</code>属性集合对象的服务器，必须响应特定URL <code>GET</code> 请求，响应内容包含资源对象集合的关联资源。</p>
    </div>
    <div id="wmd-preview-section-16961" class="wmd-preview-section preview-content">
        <h3 id="url模板">URL模板</h3>
        <p>顶层的 <code>"links"</code> 对象可用来声明URL模板，从而依据资源对象类型获取最终URLs。</p>
        <p>举例说明:</p>
    </div>
    <div id="wmd-preview-section-16962" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"links"</span>: {
    <span class="hljs-string">"posts.comments"</span>: <span class="hljs-string">"http://example.com/comments?data={posts.id}"</span>
  },
  <span class="hljs-string">"data"</span>: [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>
  }, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"The Parley Letter"</span>
  }]
}</code></pre>
        <p>在这个示例中，请求<code>http://example.com/comments?posts=1</code> 将会得到<code>"Rails is Omakase"</code>的comments，请求<code>http://example.com/comments?posts=2</code> 将会得到 <code>"The Parley <br>
Letter"</code>的comments.</p>
        <p>下面是另外一个示例:</p>
    </div>
    <div id="wmd-preview-section-16963" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"links"</span>: {
    <span class="hljs-string">"posts.comments"</span>: <span class="hljs-string">"http://example.com/comments/{posts.comments}"</span>
  },
  <span class="hljs-string">"posts"</span>: [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"1"</span>, <span class="hljs-string">"2"</span>, <span class="hljs-string">"3"</span>, <span class="hljs-string">"4"</span> ]
    }
  }]
}</code></pre>
        <p>在这个示例中，处理每个post<code>"links"</code>区块内的特定数组，以扩展<code>posts.comments</code>变量。URI模板规范 [<a href="https://tools.ietf.org/html/rfc6570" target="_blank">RFC6570</a>]声明默认处理方式，使用%编码（即<code>encodeURIComponent()</code> javascript原生方法）编码每一个元素，然后用逗号连接。在这个示例中，请求<code>http://example.com/comments/1,2,3,4</code> ，将会获取一个<code>comments</code>列表。</p>
        <p>顶层 <code>"links"</code>对象具有以下行为:</p>
        <ul>
            <li>每个键使用点分隔路径，指向重复的关联。路径以特定资源类型名开头，遍历相关的资源。举例来 说，<code>"posts.comments"</code>指向每个<code>"posts"</code>对象的<code>"comments"</code>关联.</li>
            <li>每个键的值作为URL模板处理。</li>
            <li>每个path指向的资源，就像是使用实际指定的非URL值扩展URL模板形成的关联。</li>
        </ul>
        <p>这是另外一个使用单对象关联的示例：</p>
    </div>
    <div id="wmd-preview-section-16964" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"links"</span>: {
    <span class="hljs-string">"posts.author"</span>: <span class="hljs-string">"http://example.com/people/{posts.author}"</span>
  },
  <span class="hljs-string">"posts"</span>: [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"12"</span>
    }
  }, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"The Parley Letter"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"12"</span>
    }
  }, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"3"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Dependency Injection is Not a Virtue"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"12"</span>
    }
  }]
}</code></pre>
        <p>这个实例中，三个posts指向author的URL都为<code>http://example.com/people/12</code>.</p>
        <p>顶层URL模板允许指定关联作为IDs，但是不要求客户端硬编码来获取URLs的信息.</p>
        <p>注意：为防止冲突，单独资源对象的<code>links</code>对象优先级高于顶层的<code>links</code>对象。</p>
    </div>
    <div id="wmd-preview-section-16965" class="wmd-preview-section preview-content">
        <h3 id="复合文档">复合文档</h3>
        <p>为减少HTTP请求，响应需要返回所请求的主要资源，同时可以选择性的包含链接资源。这样的响应称作“复合文档”。</p>
        <p>在复合文档中，链接资源必须作为资源对象，包含在文档顶层<code>"linked"</code>对象中，依据类型，组合到不同数组中。</p>
        <p>每个关联的类型，可以在资源层级，或顶层<code>"links"</code>对象层级，使用<code>"type"</code>键指定。能够辅助客户端查询链接资源对象。</p>
    </div>
    <div id="wmd-preview-section-16966" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"links"</span>: {
    <span class="hljs-string">"posts.author"</span>: {
      <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/people/{posts.author}"</span>,
      <span class="hljs-string">"type"</span>: <span class="hljs-string">"people"</span>
    },
    <span class="hljs-string">"posts.comments"</span>: {
      <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/comments/{posts.comments}"</span>,
      <span class="hljs-string">"type"</span>: <span class="hljs-string">"comments"</span>
    }
  },
  <span class="hljs-string">"posts"</span>: [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is Omakase"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"9"</span>,
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"1"</span>, <span class="hljs-string">"2"</span>, <span class="hljs-string">"3"</span> ]
    }}, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"The Parley Letter"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"9"</span>,
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"4"</span>, <span class="hljs-string">"5"</span> ]
   }}, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Dependency Injection is Not a Virtue"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"9"</span>,
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"6"</span> ]
    }
  }],
  <span class="hljs-string">"linked"</span>: {
    <span class="hljs-string">"people"</span>: [{
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"9"</span>,
      <span class="hljs-string">"name"</span>: <span class="hljs-string">"@d2h"</span>
    }],
    <span class="hljs-string">"comments"</span>: [{
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
      <span class="hljs-string">"body"</span>: <span class="hljs-string">"Mmmmmakase"</span>
    }, {
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>,
      <span class="hljs-string">"body"</span>: <span class="hljs-string">"I prefer unagi"</span>
    }, {
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"3"</span>,
      <span class="hljs-string">"body"</span>: <span class="hljs-string">"What's Omakase?"</span>
    }, {
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"4"</span>,
      <span class="hljs-string">"body"</span>: <span class="hljs-string">"Parley is a discussion, especially one between enemies"</span>
    }, {
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"5"</span>,
      <span class="hljs-string">"body"</span>: <span class="hljs-string">"The parsley letter"</span>
    }, {
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"6"</span>,
      <span class="hljs-string">"body"</span>: <span class="hljs-string">"Dependency Injection is Not a Vice"</span>
    }]
  }
}</code></pre>
        <p>这种处理方式，保证随每个响应返回每个文档的单例，即使当相同的文档被多次引用时（这个实例中三个posts的author）。沿着这种方式，如果主要文档链接到另外的主要或链接文档，在<code>"linked"</code>对象中也不应该重复。</p>
    </div>
    <div id="wmd-preview-section-16967" class="wmd-preview-section preview-content">
        <h2 id="urls">URLs</h2>
    </div>
    <div id="wmd-preview-section-16968" class="wmd-preview-section preview-content">
        <h3 id="关联文档">关联文档</h3>
        <p>确定API的URL结构时，考虑把所有的资源放置于单一“关联文档”是有用的，在关联文档中，每个资源都被分配唯一路径。在文档顶层，资源依据类型分组。在分类资源集合中，单独资源通过ID索引。其属性和links，依据资源对象结构，唯一分配。</p>
        <p>关联文档的概念，用于为资源及资源关系确定合适的URLs。重要的一点，出于不同目标和限制，用于传输资源的不同文档中，关联文档的结构有轻微差异。例如，在关联文档中的资源集当做集合处理，因为元素必须通过ID访问，在传输文档中的资源集当做数组处理，因为顺序比较重要。</p>
    </div>
    <div id="wmd-preview-section-16969" class="wmd-preview-section preview-content">
        <h3 id="资源集合urls">资源集合URLs</h3>
        <p>资源集合的URL应该依据资源类型确定。</p>
        <p>例如，”photos”类型的资源集合应该使用这种URL:</p>
    </div>
    <div id="wmd-preview-section-16970" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs">/photos</code></pre>
    </div>
    <div id="wmd-preview-section-16971" class="wmd-preview-section preview-content">
        <h3 id="单独资源urls">单独资源URLs</h3>
        <p>资源集应该作为集合，依据资源ID索引。单独资源的URL通过为集合URL添加资源ID生成。</p>
        <p>例如，ID为<code>"1"</code>的photo使用这种URL:</p>
    </div>
    <div id="wmd-preview-section-16972" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-regexp">/photos/</span><span class="hljs-number">1</span></code></pre>
        <p>多个单独资源的URL通过为集合URL添加逗号分隔的资源IDs列表生成。</p>
        <p>例如，IDs为<code>"1"</code>, <code>"2"</code>, <code>"3"</code>的photos使用这种URL:</p>
    </div>
    <div id="wmd-preview-section-16973" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-regexp">/photos/</span><span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span></code></pre>
    </div>
    <div id="wmd-preview-section-16974" class="wmd-preview-section preview-content">
        <h3 id="替代性urls">替代性URLs</h3>
        <p>资源的替代性URLs可以选择在响应中指定，或者通过<code>"href"</code>或URL模板指定。</p>
    </div>
    <div id="wmd-preview-section-16975" class="wmd-preview-section preview-content">
        <h3 id="关联-urls">关联 URLs</h3>
        <p>添加<code>/links/&lt;relationship-name&gt;</code>到资源URL后面，即得到访问特定资源的关联资源URL。相对路径与资源对象内部结构保持一致。</p>
        <p>例如，photo的comments链接集使用这种URL:</p>
    </div>
    <div id="wmd-preview-section-16976" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-regexp">/photos/</span><span class="hljs-number">1</span><span class="hljs-regexp">/links/</span>comments</code></pre>
        <p>A photo’s reference to an individual linked photographer will have the URL:
            <br> photo的photographer链接使用这种URL:
        </p>
    </div>
    <div id="wmd-preview-section-16977" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-regexp">/photos/</span><span class="hljs-number">1</span><span class="hljs-regexp">/links/</span>photographer</code></pre>
        <p>服务器使用单独资源响应单对象关联，使用资源集合响应多对象关联。</p>
    </div>
    <div id="wmd-preview-section-16978" class="wmd-preview-section preview-content">
        <h2 id="资源获取">资源获取</h2>
        <p>资源，或者资源集合，通过向URL发出<code>GET</code>请求获取。</p>
        <p>响应内容可以使用如下所示的特点，进一步细化。</p>
    </div>
    <div id="wmd-preview-section-16979" class="wmd-preview-section preview-content">
        <h3 id="过滤">过滤</h3>
        <p>服务器可以选择性支持，依据指定标准进行资源过滤。</p>
        <p>通过向资源集合的基准URL添加过滤参数，来支持资源过滤。</p>
        <p>例如，下面是请求与特定post关联的所有comments:</p>
    </div>
    <div id="wmd-preview-section-16980" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs fix"><span class="hljs-attribute">GET /comments?posts</span>=<span class="hljs-string">1</span></code></pre>
        <p>使用这种方案，单一请求可以使用多过滤器：</p>
    </div>
    <div id="wmd-preview-section-16981" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs nix">GET /comments?<span class="hljs-variable">posts=</span><span class="hljs-number">1</span>&amp;<span class="hljs-variable">author=</span><span class="hljs-number">12</span></code></pre>
        <p>这种规范仅支持基于严格匹配的资源过滤。API允许使用的额外过滤器应该在它的侧写中指定。 (见
            <br>
            <a href="http:///extending" target="_blank">Extending</a>)</p>
    </div>
    <div id="wmd-preview-section-16982" class="wmd-preview-section preview-content">
        <h3 id="内链资源">内链资源</h3>
        <p>服务器可以选择性支持，返回包含主要资源和链接资源对象的复合文档。</p>
        <p>默认情况下，后端返回链接主要资源的资源对象。</p>
        <p>后端也可以基于请求中<code>include</code>的参数，支持自定义链接资源。参数应该指定一个或者多个，相对于主要资源的相对路径。如果指定参数值，只有请求的链接资源，应该随主要资源返回。</p>
        <p>例如，comments可以通过post请求:</p>
    </div>
    <div id="wmd-preview-section-16983" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle">GET <span class="hljs-regexp">/posts/</span><span class="hljs-number">1</span>?<span class="hljs-keyword">include</span>=comments</code></pre>
        <p>为请求链接到其他资源的资源，需要指定每个关联的点分隔路径。</p>
    </div>
    <div id="wmd-preview-section-16984" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle">GET <span class="hljs-regexp">/posts/</span><span class="hljs-number">1</span>?<span class="hljs-keyword">include</span>=comments.author</code></pre>
        <p>注意：对<code>comments.author</code>的请求，在响应中不应该自动包含<code>comments</code>资源（尽管comments也需要显式查询，以获取authors响应请求）。</p>
        <p>多链接资源可以使用点分隔列表请求：</p>
    </div>
    <div id="wmd-preview-section-16985" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle">GET <span class="hljs-regexp">/posts/</span><span class="hljs-number">1</span>?<span class="hljs-keyword">include</span>=author,comments,comments.author</code></pre>
    </div>
    <div id="wmd-preview-section-16986" class="wmd-preview-section preview-content">
        <h3 id="稀疏字段">稀疏字段</h3>
        <p>服务器可以选择性支持，仅返回资源对象的指定字段。</p>
        <p>后端可以基于<code>fields</code>参数，以支持返回主要资源的指定字段。</p>
    </div>
    <div id="wmd-preview-section-16987" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs applescript">GET /people?fields=<span class="hljs-property">id</span>,<span class="hljs-property">name</span>,age</code></pre>
        <p>后端可以基于<code>fields[TYPE]</code>参数，以支持返回任意类型资源的特定字段。</p>
    </div>
    <div id="wmd-preview-section-16988" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs applescript">GET /posts?include=author&amp;fields[posts]=<span class="hljs-property">id</span>,title&amp;fields[people]=<span class="hljs-property">id</span>,<span class="hljs-property">name</span></code></pre>
        <p>若没有指定类型对象的字段，或者后端不支持<code>field</code>或<code>fields[TYPE]</code>参数，后端会默认返回资源对象的所有字段。</p>
        <p>后端可以选择总是返回有限的，未指定的字段集，例如<code>id</code> or <code>href</code>.</p>
        <p>注意： <code>fields</code> 和 <code>fields[TYPE]</code>不能混合使用。如果使用后者，那么必须与主要资源类型同时使用。 </p>
    </div>
    <div id="wmd-preview-section-16989" class="wmd-preview-section preview-content">
        <h3 id="排序">排序</h3>
        <p>服务器可以选择性支持，基于特定标准对资源集合排序。</p>
        <p>后端基于<code>sort</code>参数，以支持主要资源类型的排序。</p>
    </div>
    <div id="wmd-preview-section-16990" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs fix"><span class="hljs-attribute">GET /people?sort</span>=<span class="hljs-string">age</span></code></pre>
        <p>后端支持多字段排序，将<code>sort</code>值设置为点分隔值即可。排序标准用以获取特定顺序。</p>
    </div>
    <div id="wmd-preview-section-16991" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs applescript">GET /people?sort=age,<span class="hljs-property">name</span></code></pre>
        <p>默认排序方式为升序排序。任意排序字段，使用<code>-</code>前缀指定降序排序。</p>
    </div>
    <div id="wmd-preview-section-16992" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs dos">GET /posts?sort=-created,<span class="hljs-built_in">title</span></code></pre>
        <p>上面的示例应该首先返回最新的posts。同一天创建的posts，依据title值进行字母升序排列。</p>
        <p>后端基于<code>sort[TYPE]</code>参数，以支持对任意资源类型排序。</p>
    </div>
    <div id="wmd-preview-section-16993" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs livecodeserver">GET /posts?<span class="hljs-built_in">include</span>=author&amp;<span class="hljs-built_in">sort</span>[posts]=-created,title&amp;<span class="hljs-built_in">sort</span>[people]=name</code></pre>
        <p>如果没有指定排序方式，或者后端不支持<code>sort</code>和<code>sort[TYPE]</code>，后端将会返回使用重复算法排序的资源对象。换言之，资源应该总是以相同顺序返回，即使排序规则没有指定。</p>
        <p>注意：<code>sort</code>和<code>sort[TYPE]</code>不能混用。如果使用后者，必须与主要资源一同使用。</p>
    </div>
    <div id="wmd-preview-section-16994" class="wmd-preview-section preview-content">
        <h2 id="创建更新删除资源">创建，更新，删除资源</h2>
        <p>服务器可能支持资源获取，创建，更新和删除。</p>
        <p>服务器允许单次请求，更新多个资源，如下所述。多个资源更新必须完全成功或者失败，不允许部分更新成功。</p>
        <p>任何包含内容的请求，必须包含<code>Content-Type:application/vnd.api+json</code>请求头。 </p>
    </div>
    <div id="wmd-preview-section-16995" class="wmd-preview-section preview-content">
        <h3 id="创建资源">创建资源</h3>
        <p>支持资源创建的服务器，必须支持创建单独的资源，可以选择性支持一次请求，创建多个资源。</p>
        <p>向表示待创建资源所属资源集的URL，发出<code>POST</code>请求，创建一个或多个资源。</p>
    </div>
    <div id="wmd-preview-section-16996" class="wmd-preview-section preview-content">
        <h4 id="创建单独资源">创建单独资源</h4>
        <p>创建单独资源的请求必须包含单一主要资源对象。</p>
        <p>例如，新photo可以通过如下请求创建：</p>
    </div>
    <div id="wmd-preview-section-16997" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">POST /photos
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"photos"</span>: {
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
    <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
  }
}</code></pre>
    </div>
    <div id="wmd-preview-section-16998" class="wmd-preview-section preview-content">
        <h4 id="创建多个资源">创建多个资源</h4>
        <p>创建多个资源的请求必须包含主要主要资源集合。</p>
        <p>例如，多个photos通过如下请求创建：</p>
    </div>
    <div id="wmd-preview-section-16999" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">POST /photos
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"photos"</span>: [{
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
    <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
  }, {
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Mustaches on a Stick"</span>,
    <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/mustaches.png"</span>
  }]
}</code></pre>
    </div>
    <div id="wmd-preview-section-17000" class="wmd-preview-section preview-content">
        <h4 id="响应">响应</h4>
    </div>
    <div id="wmd-preview-section-17001" class="wmd-preview-section preview-content">
        <h5 id="201-状态码">201 状态码</h5>
        <p>服务器依据[<code>HTTP semantics</code>](<a href="http://tools.ietf.org/html/draft-ietf-" target="_blank">http://tools.ietf.org/html/draft-ietf-</a>
            <br> httpbis-p2-semantics-22#section-6.3)规范，响应成功的资源创建请求。
        </p>
        <p>当一个或多个资源创建成功，服务器返回<code>201 Created</code>状态码。</p>
        <p>响应必须包含<code>Location</code>头，用以标示请求创建所有资源的位置。</p>
        <p>如果创建了单个资源，且资源对象包含<code>href</code>键，<code>Location</code> URL必须匹配<code>href</code>值。</p>
        <p>响应必须含有一个文档，用以存储所创建的主要资源。如果缺失，客户端则判定资源创建时，传输的文档未经修改。</p>
    </div>
    <div id="wmd-preview-section-17002" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">HTTP/<span class="hljs-number">1.1</span> <span class="hljs-number">201</span> Created
Location: http:<span class="hljs-comment">//example.com/photos/550e8400-e29b-41d4-a716-446655440000</span>
Content-Type: application/vnd.api+json

{
  <span class="hljs-string">"photos"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"550e8400-e29b-41d4-a716-446655440000"</span>,
    <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/photos/550e8400-e29b-41d4-a716-446655440000"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
    <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
  }
}</code></pre>
    </div>
    <div id="wmd-preview-section-17003" class="wmd-preview-section preview-content">
        <h5 id="其它响应">其它响应</h5>
        <p>服务器可能使用其它HTTP错误状态码反映错误。客户端必须依据HTTP规范处理这些错误信息。如下所述，错误细节可能会一并返回。</p>
    </div>
    <div id="wmd-preview-section-17004" class="wmd-preview-section preview-content">
        <h4 id="客户端生成-ids">客户端生成 IDs</h4>
        <p>请求创建一个或多个资源时，服务器可能接受客户端生成IDs。IDs必须使用<code>"id"</code>键来指定，其值必须正确生成，且为格式化的<em>UUID</em>。</p>
        <p>例如：</p>
    </div>
    <div id="wmd-preview-section-17005" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">POST /photos
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"photos"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"550e8400-e29b-41d4-a716-446655440000"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
    <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
  }
}</code></pre>
    </div>
    <div id="wmd-preview-section-17006" class="wmd-preview-section preview-content">
        <h3 id="更新资源">更新资源</h3>
        <p>支持资源更新的服务器必须支持单个资源的更新，可以选择性的支持单次请求更新多个资源。</p>
        <p>向表示单独资源或多个单独资源的URL发出<code>PUT</code>请求，即可进行资源更新。</p>
    </div>
    <div id="wmd-preview-section-17007" class="wmd-preview-section preview-content">
        <h4 id="更新单独资源">更新单独资源</h4>
        <p>为更新单独资源，向表示资源的URL发出<code>PUT</code>请求。请求必须包含一个顶层资源对象。</p>
        <p>例如：</p>
    </div>
    <div id="wmd-preview-section-17008" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PUT /articles/<span class="hljs-number">1</span>
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"articles"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"To TDD or Not"</span>
  }
}</code></pre>
    </div>
    <div id="wmd-preview-section-17009" class="wmd-preview-section preview-content">
        <h4 id="更新多个资源">更新多个资源</h4>
        <p>向表示多个单独资源（不是全部的资源集合）的URL发出<code>PUT</code>请求，即可更新多个资源。请求必须包含顶层资源对象集合，且每个资源具有<code>“id"</code>元素。</p>
        <p>例如：</p>
    </div>
    <div id="wmd-preview-section-17010" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PUT /articles/<span class="hljs-number">1</span>,<span class="hljs-number">2</span>
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"articles"</span>: [{
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"To TDD or Not"</span>
  }, {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"2"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"LOL Engineering"</span>
  }]
}</code></pre>
    </div>
    <div id="wmd-preview-section-17011" class="wmd-preview-section preview-content">
        <h4 id="更新属性">更新属性</h4>
        <p>要更新资源的一个或多个属性，主要资源对象应该只包括待更新的属性。资源对象缺省的属性将不会更新。</p>
        <p>例如，下面的<code>PUT</code>请求，仅会更新article的<code>title</code>和<code>text</code>属性。</p>
    </div>
    <div id="wmd-preview-section-17012" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PUT /articles/<span class="hljs-number">1</span>
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"articles"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"To TDD or Not"</span>,
    <span class="hljs-string">"text"</span>: <span class="hljs-string">"TLDR; It's complicated... but check your test coverage regardless."</span>
  }
}</code></pre>
    </div>
    <div id="wmd-preview-section-17013" class="wmd-preview-section preview-content">
        <h4 id="更新关联">更新关联</h4>
    </div>
    <div id="wmd-preview-section-17014" class="wmd-preview-section preview-content">
        <h5 id="更新单对象关联">更新单对象关联</h5>
        <p>单对象关联更新，可以在<code>PUT</code>请求资源对象中包含<code>links</code>键，从而与其它属性一起更新。</p>
        <p>例如，下面的<code>PUT</code>请求将会更新article的<code>title</code>和<code>author</code>属性：</p>
    </div>
    <div id="wmd-preview-section-17015" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PUT /articles/<span class="hljs-number">1</span>
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"articles"</span>: {
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is a Melting Pot"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"author"</span>: <span class="hljs-string">"1"</span>
    }
  }
}</code></pre>
        <p>若要移除单对象关联，指定<code>null</code>作为值即可。</p>
        <p>另外，单对象关联也可以通过它的关联URL访问。</p>
        <p>向关联URL发出带有主要资源的<code>POST</code>请求，即可添加单对象关联。</p>
        <p>例如：</p>
    </div>
    <div id="wmd-preview-section-17016" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">POST /articles/<span class="hljs-number">1</span>/links/author
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"people"</span>: <span class="hljs-string">"12"</span>
}</code></pre>
        <p>向关联URL发出<code>DELETE</code>请求，即可删除单对象关联。例如：</p>
    </div>
    <div id="wmd-preview-section-17017" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/articles/</span><span class="hljs-number">1</span><span class="hljs-regexp">/links/</span>author</code></pre>
    </div>
    <div id="wmd-preview-section-17018" class="wmd-preview-section preview-content">
        <h5 id="更新多关联对象">更新多关联对象</h5>
        <p>更新多对象关联，可以在<code>PUT</code>请求中资源对象包含<code>links</code>键，从而与其它属性一起更新。</p>
        <p>例如，下面<code>PUT</code>请求完全替换article的<code>tags</code>。</p>
    </div>
    <div id="wmd-preview-section-17019" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PUT /articles/<span class="hljs-number">1</span>
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"articles"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Rails is a Melting Pot"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"tags"</span>: [<span class="hljs-string">"2"</span>, <span class="hljs-string">"3"</span>]
    }
  }
}</code></pre>
        <p>若要移除多对象关联，指定空数组<code>[]</code>为值即可。</p>
        <p>在分布式系统中，完全替换一个数据集合并不总是合适。替换方案是允许单独的添加或移除关联。</p>
        <p>为促进细化访问，多对象关联也可以通过关联URL访问。</p>
        <p>向关联URL发出带有主要资源的<code>POST</code>请求，即可添加多对象关联。</p>
    </div>
    <div id="wmd-preview-section-17020" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs groovy">POST <span class="hljs-regexp">/articles/</span><span class="hljs-number">1</span><span class="hljs-regexp">/links/</span>comments
Content-<span class="hljs-string">Type:</span> application/vnd.api+json
<span class="hljs-string">Accept:</span> application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"comments"</span>: [<span class="hljs-string">"1"</span>, <span class="hljs-string">"2"</span>]
}</code></pre>
        <p>向关联URL发出<code>DELETE</code>请求，即可删除多对象对象关联。例如：</p>
    </div>
    <div id="wmd-preview-section-17021" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/articles/</span><span class="hljs-number">1</span><span class="hljs-regexp">/links/</span>tags<span class="hljs-regexp">/1</span></code></pre>
        <p>向关联URL发出<code>DELETE</code>请求，即可删除多个多对象对象关联。例如：</p>
    </div>
    <div id="wmd-preview-section-17022" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/articles/</span><span class="hljs-number">1</span><span class="hljs-regexp">/links/</span>tags<span class="hljs-regexp">/1,2</span></code></pre>
    </div>
    <div id="wmd-preview-section-17023" class="wmd-preview-section preview-content">
        <h3 id="响应-1">响应</h3>
    </div>
    <div id="wmd-preview-section-17024" class="wmd-preview-section preview-content">
        <h4 id="204-no-content">204 No Content</h4>
        <p>如果更新成功，且客户端属性保持最新，服务器必须返回<code>204 No Content</code>状态码。适用于<code>PUT</code>请求，以及仅调整links，不涉及其它属性的<code>POST</code>, <code>DELETE</code>请求。</p>
    </div>
    <div id="wmd-preview-section-17025" class="wmd-preview-section preview-content">
        <h4 id="200-ok">200 OK</h4>
        <p>如果服务器接受更新，但是在请求指定内容之外做了资源修改，必须响应<code>200 OK</code>以及更新的资源实例，像是向此URL发出<code>GET</code>请求。</p>
    </div>
    <div id="wmd-preview-section-17026" class="wmd-preview-section preview-content">
        <h4 id="其它响应-1">其它响应</h4>
        <p>服务器使用其它HTTP错误状态码反映错误。客户端必须依据HTTP规范处理这些错误信息。如下所述，错误细节可能会一并返回。</p>
    </div>
    <div id="wmd-preview-section-17027" class="wmd-preview-section preview-content">
        <h3 id="资源删除">资源删除</h3>
        <p>向资源URL发出<code>DELETE</code>请求即可删除单个资源。</p>
    </div>
    <div id="wmd-preview-section-17028" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/photos/</span><span class="hljs-number">1</span></code></pre>
        <p>服务器可以选择性的支持，在一个请求里删除多个资源。</p>
    </div>
    <div id="wmd-preview-section-17029" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-text hljs gradle"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/photos/</span><span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span></code></pre>
    </div>
    <div id="wmd-preview-section-17030" class="wmd-preview-section preview-content">
        <h4 id="响应-2">响应</h4>
    </div>
    <div id="wmd-preview-section-17031" class="wmd-preview-section preview-content">
        <h5 id="204-no-content-1">204 No Content</h5>
        <p>如果删除请求成功，服务器必须返回<code>204 No Content</code> 状态码。</p>
    </div>
    <div id="wmd-preview-section-17032" class="wmd-preview-section preview-content">
        <h5 id="其它响应-2">其它响应</h5>
        <p>服务器使用其它HTTP错误状态码反映错误。客户端必须依据HTTP规范处理这些错误信息。如下所述，错误细节可能会一并返回。</p>
    </div>
    <div id="wmd-preview-section-17033" class="wmd-preview-section preview-content">
        <h2 id="errors">Errors</h2>
        <p>错误对象是特殊化的资源对象，可能在响应中一并返回，用以提供执行操作遭遇问题的额外信息。在在JSON API文档顶层，<code>"errors"</code>对应值即为错误对象集合，此时文档不应该包含其它顶层资源。</p>
        <p>错误对象可能有以下元素：</p>
        <ul>
            <li><code>"id"</code> - 特定问题的唯一标示符。</li>
            <li><code>"href"</code> - 提供特定问题更多细节的URI。</li>
            <li><code>"status"</code> - 适用于这个问题的HTTP状态码，使用字符串表示。</li>
            <li><code>"code"</code> - 应用特定的错误码，以字符串表示。</li>
            <li><code>"title"</code> - 简短的，可读性高的问题总结。除了国际化本地化处理之外，不同场景下，相同的问题，值是不应该变动的。</li>
            <li><code>"detail"</code> - 针对该问题的高可读性解释。</li>
            <li><code>"links"</code> - 可以在请求文档中取消应用的关联资源。</li>
            <li><code>"path"</code> - 关联资源中相关属性的相对路径。在单资源或单类型资源中出现的问题，这个值才是合适的。</li>
        </ul>
        <p>额外的元素可以在错误对象中指定。</p>
        <p>实现接口可以选择使用其它的errors媒体类型。</p>
    </div>
    <div id="wmd-preview-section-17034" class="wmd-preview-section preview-content">
        <h2 id="patch-support">PATCH Support</h2>
        <p>JSON API服务器可以选择性支持，遵循JSON Patch规范[<a href="http://tools.ietf.org/html/rfc6902" target="_blank">RFC6902</a>]的HTTP <code>PATCH</code>请求。上面提到使用<code>POST</code>, <code>PUT</code> 和 <code>DELETE</code>进行的操作，JSON Patch都拥有等效操作。从这里开始，<code>PATCH</code>请求发出的JSON Patch操作，都被简单的称作“<code>PATCH</code>“操作。</p>
        <p><code>PATCH</code>请求必须声明<code>Content-Type:application/json-patch+json</code>头。</p>
        <p><code>PATCH</code>操作必须作为数组发送，以遵循JSON Patch规范。服务器可能会限制顶层数组类型，顺序和操作数量。</p>
    </div>
    <div id="wmd-preview-section-17035" class="wmd-preview-section preview-content">
        <h3 id="请求-urls">请求 URLs</h3>
        <p>每个<code>PATCH</code>请求的URL应该映射待更新的资源或关联。</p>
        <p><code>PATCH</code>操作内的每个<code>"path"</code>应该相对于请求URL。请求URL和<code>PATCH</code>操作的<code>"path"</code>是附加的，合并后获取特定资源，集合，属性，或者关联目标。</p>
        <p><code>PATCH</code>操作可以在API的根URL使用。此时，<code>PATCH</code>操作的<code>"path"</code>必须包含完整的资源URL。API表示的任意资源都可以进行常规的”fire hose”更新。如上所述，服务器可能会限制类型，排序和批量操作数量。</p>
    </div>
    <div id="wmd-preview-section-17036" class="wmd-preview-section preview-content">
        <h3 id="创建资源with-patch">创建资源with PATCH</h3>
        <p>要创建资源，执行<code>"add"</code>操作， <code>"path"</code>指向对应资源集合的末尾 (<code>"/-"</code>)。<code>"value"</code>必须包含一个资源对象。</p>
        <p>比如，新photo通过如下请求创建：</p>
    </div>
    <div id="wmd-preview-section-17037" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /photos
Content-Type: application/json-patch+json
Accept: application/json

[
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"add"</span>, 
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/-"</span>, 
    <span class="hljs-string">"value"</span>: {
      <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
      <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
    }
  }
]</code></pre>
    </div>
    <div id="wmd-preview-section-17038" class="wmd-preview-section preview-content">
        <h3 id="更新属性with-patch">更新属性with PATCH</h3>
        <p>要更新属性，执行<code>"replace"</code> 操作，<code>"path"</code>值指定属性名。</p>
        <p>例如，下面请求只更新<code>/photos/1</code>的<code>src</code>值。</p>
    </div>
    <div id="wmd-preview-section-17039" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /photos/<span class="hljs-number">1</span>
Content-Type: application/json-patch+json

[
  {
  <span class="hljs-string">"op"</span>: <span class="hljs-string">"replace"</span>,
  <span class="hljs-string">"path"</span>: <span class="hljs-string">"/src"</span>,
  <span class="hljs-string">"value"</span>: <span class="hljs-string">"http://example.com/hamster.png"</span>
 }
]</code></pre>
    </div>
    <div id="wmd-preview-section-17040" class="wmd-preview-section preview-content">
        <h3 id="更新关联with-patch">更新关联with PATCH</h3>
        <p>要更新关联，向对应的关联URL发出合适的<code>PATCH</code>操作即可。</p>
        <p>服务器可能支持更高层级的更新，像资源的URL（甚至是API的根URL）。如上所述，请求URL和每个操作的<code>"path"</code>是附加的，合并后获得特定关联URL目标。</p>
    </div>
    <div id="wmd-preview-section-17041" class="wmd-preview-section preview-content">
        <h4 id="关联更新with-patch">关联更新with PATCH</h4>
        <p>要更新单对象关联，对指向关联的URL和<code>"path"</code> 执行<code>"replace"</code>操作。</p>
        <p>例如：下面请求更新article的<code>author</code>：</p>
    </div>
    <div id="wmd-preview-section-17042" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /article/<span class="hljs-number">1</span>/links/author
Content-Type: application/json-patch+json

[
 {
  <span class="hljs-string">"op"</span>: <span class="hljs-string">"replace"</span>,
  <span class="hljs-string">"path"</span>: <span class="hljs-string">"/"</span>,
  <span class="hljs-string">"value"</span>: <span class="hljs-string">"1"</span>
 }
]</code></pre>
        <p>要移除单对象关联，对关联执行<code>remove</code>操作。例如：</p>
    </div>
    <div id="wmd-preview-section-17043" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /article/<span class="hljs-number">1</span>/links/author
Content-Type: application/json-patch+json

[
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"remove"</span>, 
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/"</span> 
  }
]</code></pre>
    </div>
    <div id="wmd-preview-section-17044" class="wmd-preview-section preview-content">
        <h4 id="更新多对象关联-with-patch">更新多对象关联 with PATCH</h4>
        <p>尽管在<code>GET</code>响应中，多对象关联以JSON数组形式表示，但是更新时更像是集合。</p>
        <p>要添加元素到多对象关联，执行指向关联URL的<code>"add"</code> 请求。由于操作指向集合末尾， <code>"path"</code> 必须以<code>"/-"</code>结尾。</p>
        <p>例如，考虑下面的<code>GET</code>请求：</p>
    </div>
    <div id="wmd-preview-section-17045" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">GET /photos/<span class="hljs-number">1</span>
Content-Type: application/vnd.api+json

{
  <span class="hljs-string">"code"</span>:<span class="hljs-number">0</span>,
  <span class="hljs-string">"links"</span>: {
    <span class="hljs-string">"comments"</span>: <span class="hljs-string">"http://example.com/comments/{comments}"</span>
  },
  <span class="hljs-string">"photos"</span>: {
    <span class="hljs-string">"id"</span>: <span class="hljs-string">"1"</span>,
    <span class="hljs-string">"href"</span>: <span class="hljs-string">"http://example.com/photos/1"</span>,
    <span class="hljs-string">"title"</span>: <span class="hljs-string">"Hamster"</span>,
    <span class="hljs-string">"src"</span>: <span class="hljs-string">"images/hamster.png"</span>,
    <span class="hljs-string">"links"</span>: {
      <span class="hljs-string">"comments"</span>: [ <span class="hljs-string">"1"</span>, <span class="hljs-string">"5"</span>, <span class="hljs-string">"12"</span>, <span class="hljs-string">"17"</span> ]
    }
  }
}</code></pre>
        <p>向<code>PATCH</code>请求执行<code>add</code>操作，即可将comment 30 转移到这个photo。</p>
    </div>
    <div id="wmd-preview-section-17046" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /photos/<span class="hljs-number">1</span>/links/comments
Content-Type: application/json-patch+json

[
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"add"</span>, 
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/-"</span>, 
    <span class="hljs-string">"value"</span>: <span class="hljs-string">"30"</span>
  }
]</code></pre>
        <p>要移除多对象关联，对指向关联对象的URL执行<code>"remove"</code>操作。因为操作目标是元素集合，<code>"path"</code>必须以<code>"/&lt;id&gt;"</code>结尾。</p>
        <p>比如，要移除photo的comment 5，执行<code>"remove"</code>操作：</p>
    </div>
    <div id="wmd-preview-section-17047" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /photos/<span class="hljs-number">1</span>/links/comments
Content-Type: application/json-patch+json

[
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"remove"</span>, 
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/5"</span> 
  }
]</code></pre>
    </div>
    <div id="wmd-preview-section-17048" class="wmd-preview-section preview-content">
        <h3 id="删除资源with-patch">删除资源with PATCH</h3>
        <p>要删除资源，对指向资源的 URL 和<code>"path"</code>执行 <code>"remove"</code> 操作。</p>
        <p>例如，photo 1 能使用下面请求删除：</p>
    </div>
    <div id="wmd-preview-section-17049" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /photos/<span class="hljs-number">1</span>
Content-Type: application/json-patch+json
Accept: application/vnd.api+json

[
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"remove"</span>,
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/"</span>
  }
]</code></pre>
    </div>
    <div id="wmd-preview-section-17050" class="wmd-preview-section preview-content">
        <h3 id="响应-3">响应</h3>
    </div>
    <div id="wmd-preview-section-17051" class="wmd-preview-section preview-content">
        <h4 id="204-no-content-2">204 No Content</h4>
        <p>若<code>PATCH</code>请求成功，客户端当前的属性保持最新，服务器必须响应<code>204 No Content</code> 状态码。</p>
    </div>
    <div id="wmd-preview-section-17052" class="wmd-preview-section preview-content">
        <h4 id="200-ok-1">200 OK</h4>
        <p>如果服务器接受更新，但是在请求指定内容之外做了资源修改，必须响应<code>200 OK</code>以及更新的资源实例。</p>
        <p>服务器必须指定<code>Content-Type:application/json</code>头。响应内容必须包含JSON对象数组，每个对象必须遵循JSON API媒体类型(<code>application/vnd.api+json</code>)。数组中的响应对象必须有序，并且对应请求文档操作。</p>
        <p>例如，一个请求以分离操作，创建两个photos。</p>
    </div>
    <div id="wmd-preview-section-17053" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">PATCH /photos
Content-Type: application/json-patch+json
Accept: application/json

[
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"add"</span>, 
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/-"</span>, 
    <span class="hljs-string">"value"</span>: {
      <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
      <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
    }
  },
  { 
    <span class="hljs-string">"op"</span>: <span class="hljs-string">"add"</span>, 
    <span class="hljs-string">"path"</span>: <span class="hljs-string">"/-"</span>, 
    <span class="hljs-string">"value"</span>: {
      <span class="hljs-string">"title"</span>: <span class="hljs-string">"Mustaches on a Stick"</span>,
      <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/mustaches.png"</span>
    }
  }
]</code></pre>
        <p>响应内容在数组中包含对应的JSON API文档。</p>
    </div>
    <div id="wmd-preview-section-17054" class="wmd-preview-section preview-content">
        <pre class="prettyprint hljs-dark"><code class="language-javascript hljs">HTTP/<span class="hljs-number">1.1</span> <span class="hljs-number">200</span> OK
Content-Type: application/json

[
  {
    <span class="hljs-string">"photos"</span>: [{
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"123"</span>,
      <span class="hljs-string">"title"</span>: <span class="hljs-string">"Ember Hamster"</span>,
      <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/productivity.png"</span>
    }]
  }, {
    <span class="hljs-string">"photos"</span>: [{
      <span class="hljs-string">"id"</span>: <span class="hljs-string">"124"</span>,
      <span class="hljs-string">"title"</span>: <span class="hljs-string">"Mustaches on a Stick"</span>,
      <span class="hljs-string">"src"</span>: <span class="hljs-string">"http://example.com/images/mustaches.png"</span>
    }]
  }
]</code></pre>
    </div>
    <div id="wmd-preview-section-17055" class="wmd-preview-section preview-content">
        <h4 id="其它响应-3">其它响应</h4>
        <p>当服务器执行<code>PATCH</code>请求时出现一个或多个问题，应该在响应中指定最合适的HTTP状态码。客户端依据HTTP规范解析错误。</p>
        <p>服务器可以选择在第一个问题出现时，立刻终止<code>PATCH</code> 操作，或者继续执行，遇到多个问题。例如，服务器可能多属性更新，然后返回在一个响应里返回多个校验问题。</p>
        <p>当服务器单个请求遇到多个问题，响应中应该指定最通用可行的HTTP错误码。例如，<code>400 Bad Request</code>适用于多个4xx errors，<code>500 Internal Server Error</code>适用于多个5xx errors。 </p>
        <p>服务器可能会返回与每个操作对应的错误对象。服务器需要指定<code>Content-Type:application/json</code>头，响应体必须包含JSON对象数组，每个对象必须遵循JSON API媒体类型 (<code>application/vnd.api+json</code>)。数组中的响应对象，必须是有序，且与请求文档中的操作相对应。每个响应对象应该仅包含error对象，当错误发生时，没有操作会完全成功。每个特定操作的错误码，应该在每个error对象 <code>"status"</code> 元素反映。</p>
    </div>
    <div id="wmd-preview-section-17056" class="wmd-preview-section preview-content">
        <h2 id="http-缓存">HTTP 缓存</h2>
        <p>服务器可能会使用遵循HTTP 1.1规范的HTTP 缓存头 (<code>ETag</code>, <code>Last-Modified</code>)。</p>
    </div>
    <div id="wmd-preview-section-footnotes" class="preview-content"></div>
</body>

</html>
